You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by pn...@apache.org on 2015/10/13 12:17:31 UTC
[1/3] celix git commit: CELIX-237: Added extra test
Repository: celix
Updated Branches:
refs/heads/feature/CELIX-237_rsa-ffi 119bb9504 -> 8689fc102
CELIX-237: Added extra test
Project: http://git-wip-us.apache.org/repos/asf/celix/repo
Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/6494ec29
Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/6494ec29
Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/6494ec29
Branch: refs/heads/feature/CELIX-237_rsa-ffi
Commit: 6494ec29b61df6e69cd3608eadc841ab0292e96c
Parents: 119bb95
Author: Pepijn Noltes <pe...@gmail.com>
Authored: Mon Oct 12 12:04:36 2015 +0200
Committer: Pepijn Noltes <pe...@gmail.com>
Committed: Mon Oct 12 12:04:36 2015 +0200
----------------------------------------------------------------------
launcher/private/src/main.c | 9 ++++++++-
.../dynamic_function_interface_tst/dyn_type_tests.cpp | 5 +++--
2 files changed, 11 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/6494ec29/launcher/private/src/main.c
----------------------------------------------------------------------
diff --git a/launcher/private/src/main.c b/launcher/private/src/main.c
index ec72d03..8998e44 100644
--- a/launcher/private/src/main.c
+++ b/launcher/private/src/main.c
@@ -32,6 +32,7 @@
static void show_usage(char* prog_name);
static void shutdown_framework(int signal);
+static void ignore(int signal);
#define DEFAULT_CONFIG_FILE "config.properties"
@@ -62,6 +63,8 @@ int main(int argc, char *argv[]) {
// Set signal handler
(void) signal(SIGINT, shutdown_framework);
+ (void) signal(SIGUSR1, ignore);
+ (void) signal(SIGUSR2, ignore);
int rc = celixLauncher_launch(config_file, &framework);
if (rc == 0) {
@@ -78,4 +81,8 @@ static void shutdown_framework(int signal) {
if (framework != NULL) {
celixLauncher_stop(framework); //NOTE main thread will destroy
}
-}
\ No newline at end of file
+}
+
+static void ignore(int signal) {
+ //ignoring for signal SIGUSR1, SIGUSR2. Can be used on threads
+}
http://git-wip-us.apache.org/repos/asf/celix/blob/6494ec29/remote_services/remote_service_admin_dfi/dynamic_function_interface_tst/dyn_type_tests.cpp
----------------------------------------------------------------------
diff --git a/remote_services/remote_service_admin_dfi/dynamic_function_interface_tst/dyn_type_tests.cpp b/remote_services/remote_service_admin_dfi/dynamic_function_interface_tst/dyn_type_tests.cpp
index 57db391..e2fe950 100644
--- a/remote_services/remote_service_admin_dfi/dynamic_function_interface_tst/dyn_type_tests.cpp
+++ b/remote_services/remote_service_admin_dfi/dynamic_function_interface_tst/dyn_type_tests.cpp
@@ -5,7 +5,6 @@
#include "CppUTest/CommandLineTestRunner.h"
extern "C" {
- #include <string.h>
#include <stdarg.h>
#include "dyn_common.h"
@@ -44,7 +43,7 @@ extern "C" {
}
FILE *stream = fopen("/dev/null", "w");
- dynType_print(type, stream);
+ dynType_print(type, stdout);
fclose(stream);
dynType_destroy(type);
//printf("--\n\n");
@@ -72,6 +71,7 @@ TEST_GROUP(DynTypeTests) {
#define EX13 "Ttype={DDDDD a b c d e};{ltype;Ltype;ltype;Ltype; byVal1 byRef1 byVal2 ByRef2}"
#define EX14 "{DD{FF{JJ}{II*{ss}}}}" //unnamed fields
#define EX15 "Tsample={jDD time val1 val2};Tresult={jDlsample; time result sample};Lresult;"
+#define EX16 "Tpoi={BDD id lat lon};Lpoi;"
#define CREATE_EXAMPLES_TEST(DESC) \
TEST(DynTypeTests, ParseTestExample ## DESC) { \
@@ -93,6 +93,7 @@ CREATE_EXAMPLES_TEST(EX12)
CREATE_EXAMPLES_TEST(EX13)
CREATE_EXAMPLES_TEST(EX14)
CREATE_EXAMPLES_TEST(EX15)
+CREATE_EXAMPLES_TEST(EX16)
TEST(DynTypeTests, ParseRandomGarbageTest) {
/*
[2/3] celix git commit: CELIX-237: Added locking and some clearup
Posted by pn...@apache.org.
CELIX-237: Added locking and some clearup
Project: http://git-wip-us.apache.org/repos/asf/celix/repo
Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/c66eb887
Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/c66eb887
Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/c66eb887
Branch: refs/heads/feature/CELIX-237_rsa-ffi
Commit: c66eb88753e001fefe007e57325777f8dd8fc4db
Parents: 6494ec2
Author: Pepijn Noltes <pe...@gmail.com>
Authored: Tue Oct 13 11:38:00 2015 +0200
Committer: Pepijn Noltes <pe...@gmail.com>
Committed: Tue Oct 13 12:16:38 2015 +0200
----------------------------------------------------------------------
.../rsa/private/src/import_registration_dfi.c | 42 +++++++++++++++-----
1 file changed, 33 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/c66eb887/remote_services/remote_service_admin_dfi/rsa/private/src/import_registration_dfi.c
----------------------------------------------------------------------
diff --git a/remote_services/remote_service_admin_dfi/rsa/private/src/import_registration_dfi.c b/remote_services/remote_service_admin_dfi/rsa/private/src/import_registration_dfi.c
index 3ba20e7..f0530b0 100644
--- a/remote_services/remote_service_admin_dfi/rsa/private/src/import_registration_dfi.c
+++ b/remote_services/remote_service_admin_dfi/rsa/private/src/import_registration_dfi.c
@@ -1,6 +1,7 @@
#include <stdlib.h>
#include <jansson.h>
#include <json_rpc.h>
+#include <assert.h>
#include "json_serializer.h"
#include "dyn_interface.h"
#include "import_registration.h"
@@ -20,6 +21,7 @@ struct import_registration {
service_registration_pt factoryReg;
hash_map_pt proxies; //key -> bundle, value -> service_proxy
+ celix_thread_mutex_t proxiesMutex; //protects proxies
};
struct service_proxy {
@@ -32,6 +34,7 @@ static celix_status_t importRegistration_createProxy(import_registration_pt impo
struct service_proxy **proxy);
static void importRegistration_proxyFunc(void *userData, void *args[], void *returnVal);
static void importRegistration_destroyProxy(struct service_proxy *proxy);
+static void importRegistration_clearProxies(import_registration_pt import);
celix_status_t importRegistration_create(bundle_context_pt context, endpoint_description_pt endpoint, const char *classObject,
import_registration_pt *out) {
@@ -47,7 +50,9 @@ celix_status_t importRegistration_create(bundle_context_pt context, endpoint_des
reg->endpoint = endpoint;
reg->classObject = classObject;
reg->proxies = hashMap_create(NULL, NULL, NULL, NULL);
+
celixThreadMutex_create(®->mutex, NULL);
+ celixThreadMutex_create(®->proxiesMutex, NULL);
reg->factory->factory = reg;
reg->factory->getService = (void *)importRegistration_getService;
@@ -76,18 +81,32 @@ celix_status_t importRegistration_setSendFn(import_registration_pt reg,
return CELIX_SUCCESS;
}
-void importRegistration_destroy(import_registration_pt import) {
+static void importRegistration_clearProxies(import_registration_pt import) {
if (import != NULL) {
+ pthread_mutex_lock(&import->proxiesMutex);
if (import->proxies != NULL) {
- hash_map_iterator_pt iter = hashMapIterator_create(import->proxies);
+ hash_map_iterator_pt iter = hashMapIterator_create(import->proxies);
while (hashMapIterator_hasNext(iter)) {
struct service_proxy *proxy = hashMapIterator_nextEntry(iter);
importRegistration_destroyProxy(proxy);
}
hashMapIterator_destroy(iter);
+ }
+ pthread_mutex_unlock(&import->proxiesMutex);
+ }
+}
+
+void importRegistration_destroy(import_registration_pt import) {
+ if (import != NULL) {
+ if (import->proxies != NULL) {
+ importRegistration_clearProxies(import);
hashMap_destroy(import->proxies, false, false);
import->proxies = NULL;
}
+
+ pthread_mutex_destroy(&import->mutex);
+ pthread_mutex_destroy(&import->proxiesMutex);
+
if (import->factory != NULL) {
free(import->factory);
}
@@ -110,7 +129,9 @@ celix_status_t importRegistration_stop(import_registration_pt import) {
if (import->factoryReg != NULL) {
serviceRegistration_unregister(import->factoryReg);
}
- //TODO unregister every serv instance? Needed for factory?
+
+ importRegistration_clearProxies(import);
+
return status;
}
@@ -127,11 +148,12 @@ celix_status_t importRegistration_getService(import_registration_pt import, bund
*/
- struct service_proxy *proxy = hashMap_get(import->proxies, bundle); //TODO lock
+ pthread_mutex_lock(&import->proxiesMutex);
+ struct service_proxy *proxy = hashMap_get(import->proxies, bundle);
if (proxy == NULL) {
status = importRegistration_createProxy(import, bundle, &proxy);
if (status == CELIX_SUCCESS) {
- hashMap_put(import->proxies, bundle, proxy); //TODO lock
+ hashMap_put(import->proxies, bundle, proxy);
}
}
@@ -139,6 +161,7 @@ celix_status_t importRegistration_getService(import_registration_pt import, bund
proxy->count += 1;
*out = proxy->service;
}
+ pthread_mutex_unlock(&import->proxiesMutex);
return status;
}
@@ -263,13 +286,13 @@ static void importRegistration_proxyFunc(void *userData, void *args[], void *ret
celix_status_t importRegistration_ungetService(import_registration_pt import, bundle_pt bundle, service_registration_pt registration, void **out) {
celix_status_t status = CELIX_SUCCESS;
- return status;
- /* TODO fix. gives segfault in framework shutdown (import->proxies == NULL)
assert(import != NULL);
assert(import->proxies != NULL);
- struct service_proxy *proxy = hashMap_get(import->proxies, bundle); //TODO lock
+ pthread_mutex_lock(&import->proxiesMutex);
+
+ struct service_proxy *proxy = hashMap_get(import->proxies, bundle);
if (proxy != NULL) {
if (*out == proxy->service) {
proxy->count -= 1;
@@ -281,7 +304,8 @@ celix_status_t importRegistration_ungetService(import_registration_pt import, bu
importRegistration_destroyProxy(proxy);
}
}
- */
+
+ pthread_mutex_lock(&import->proxiesMutex);
return status;
}
[3/3] celix git commit: CELIX-237: Only enabling error logging for
the dfi lib
Posted by pn...@apache.org.
CELIX-237: Only enabling error logging for the dfi lib
Project: http://git-wip-us.apache.org/repos/asf/celix/repo
Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/8689fc10
Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/8689fc10
Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/8689fc10
Branch: refs/heads/feature/CELIX-237_rsa-ffi
Commit: 8689fc1021932c7baaf9f6bc3d613af97d17c3b0
Parents: c66eb88
Author: Pepijn Noltes <pe...@gmail.com>
Authored: Tue Oct 13 12:00:48 2015 +0200
Committer: Pepijn Noltes <pe...@gmail.com>
Committed: Tue Oct 13 12:16:50 2015 +0200
----------------------------------------------------------------------
.../rsa/private/src/remote_service_admin_dfi.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/8689fc10/remote_services/remote_service_admin_dfi/rsa/private/src/remote_service_admin_dfi.c
----------------------------------------------------------------------
diff --git a/remote_services/remote_service_admin_dfi/rsa/private/src/remote_service_admin_dfi.c b/remote_services/remote_service_admin_dfi/rsa/private/src/remote_service_admin_dfi.c
index 9ea470b..4bd8c58 100644
--- a/remote_services/remote_service_admin_dfi/rsa/private/src/remote_service_admin_dfi.c
+++ b/remote_services/remote_service_admin_dfi/rsa/private/src/remote_service_admin_dfi.c
@@ -135,11 +135,11 @@ celix_status_t remoteServiceAdmin_create(bundle_context_pt context, remote_servi
if (logHelper_create(context, &(*admin)->loghelper) == CELIX_SUCCESS) {
logHelper_start((*admin)->loghelper);
- dynCommon_logSetup((void *)remoteServiceAdmin_log, *admin, 4);
- dynType_logSetup((void *)remoteServiceAdmin_log, *admin, 4);
- dynFunction_logSetup((void *)remoteServiceAdmin_log, *admin, 4);
- dynInterface_logSetup((void *)remoteServiceAdmin_log, *admin, 4);
- jsonSerializer_logSetup((void *)remoteServiceAdmin_log, *admin, 4);
+ dynCommon_logSetup((void *)remoteServiceAdmin_log, *admin, 1);
+ dynType_logSetup((void *)remoteServiceAdmin_log, *admin, 1);
+ dynFunction_logSetup((void *)remoteServiceAdmin_log, *admin, 1);
+ dynInterface_logSetup((void *)remoteServiceAdmin_log, *admin, 1);
+ jsonSerializer_logSetup((void *)remoteServiceAdmin_log, *admin, 1);
}
bundleContext_getProperty(context, "RSA_PORT", &port);