Return-Path: X-Original-To: apmail-celix-commits-archive@www.apache.org Delivered-To: apmail-celix-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2940A183CD for ; Tue, 3 Nov 2015 15:09:29 +0000 (UTC) Received: (qmail 31189 invoked by uid 500); 3 Nov 2015 15:09:28 -0000 Delivered-To: apmail-celix-commits-archive@celix.apache.org Received: (qmail 31141 invoked by uid 500); 3 Nov 2015 15:09:28 -0000 Mailing-List: contact commits-help@celix.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@celix.apache.org Delivered-To: mailing list commits@celix.apache.org Received: (qmail 30231 invoked by uid 99); 3 Nov 2015 15:09:28 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 03 Nov 2015 15:09:28 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 5DCD8E1072; Tue, 3 Nov 2015 15:09:28 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: pnoltes@apache.org To: commits@celix.apache.org Date: Tue, 03 Nov 2015 15:10:04 -0000 Message-Id: In-Reply-To: <1112eec2abbb4c4fa0d84c6d16881b78@git.apache.org> References: <1112eec2abbb4c4fa0d84c6d16881b78@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [38/50] [abbrv] celix git commit: CELIX-269: Added marco for the callback functions which can be used to prevent warning instead of casting to (void *) CELIX-269: Added marco for the callback functions which can be used to prevent warning instead of casting to (void *) Project: http://git-wip-us.apache.org/repos/asf/celix/repo Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/e302c2d3 Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/e302c2d3 Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/e302c2d3 Branch: refs/heads/master Commit: e302c2d369c66c045b333088be0718b03c04bf15 Parents: 02c5631 Author: Pepijn Noltes Authored: Thu Oct 29 17:35:20 2015 +0100 Committer: Pepijn Noltes Committed: Thu Oct 29 17:35:20 2015 +0100 ---------------------------------------------------------------------- .../private/src/dm_shell_list_command.c | 8 +++---- .../public/include/dm_component.h | 17 +++++++++++---- dependency_manager/public/include/dm_info.h | 2 +- .../public/include/dm_service_dependency.h | 22 +++++++++++++++----- .../phase1/private/include/phase1_cmp.h | 1 + .../phase1/private/src/phase1_activator.c | 4 ++-- .../dm_example/phase1/private/src/phase1_cmp.c | 5 +++++ .../phase2a/private/include/phase2a_cmp.h | 1 + .../phase2a/private/src/phase2a_activator.c | 4 ++-- .../phase2a/private/src/phase2a_cmp.c | 5 +++++ .../phase2b/private/include/phase2b_cmp.h | 1 + .../phase2b/private/src/phase2b_activator.c | 4 ++-- .../phase2b/private/src/phase2b_cmp.c | 5 +++++ .../phase3/private/include/phase3_cmp.h | 1 + .../phase3/private/src/phase3_activator.c | 4 ++-- .../dm_example/phase3/private/src/phase3_cmp.c | 5 +++++ 16 files changed, 67 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/e302c2d3/dependency_manager/private/src/dm_shell_list_command.c ---------------------------------------------------------------------- diff --git a/dependency_manager/private/src/dm_shell_list_command.c b/dependency_manager/private/src/dm_shell_list_command.c index 4d08068..1855664 100644 --- a/dependency_manager/private/src/dm_shell_list_command.c +++ b/dependency_manager/private/src/dm_shell_list_command.c @@ -75,8 +75,8 @@ void dmListCommand_execute(command_pt command, char * line, void (*out)(char *), int cmpCnt; for (cmpCnt = 0; cmpCnt < arrayList_size(info->components); cmpCnt++) { dm_component_info_pt compInfo = arrayList_get(info->components, cmpCnt); - char *startColors = ""; - char *endColors = ""; + const char *startColors = ""; + const char *endColors = ""; if (colors) { startColors = compInfo->active ? OK_COLOR : NOK_COLOR; endColors = END_COLOR; @@ -100,8 +100,8 @@ void dmListCommand_execute(command_pt command, char * line, void (*out)(char *), for(depCnt = 0 ;depCnt < arrayList_size(compInfo->dependency_list); depCnt++) { dm_service_dependency_info_pt dependency; dependency = arrayList_get(compInfo->dependency_list, depCnt); - char *startColors = ""; - char *endColors = ""; + const char *startColors = ""; + const char *endColors = ""; if (colors) { if (dependency->required) { startColors = dependency->available ? OK_COLOR : NOK_COLOR; http://git-wip-us.apache.org/repos/asf/celix/blob/e302c2d3/dependency_manager/public/include/dm_component.h ---------------------------------------------------------------------- diff --git a/dependency_manager/public/include/dm_component.h b/dependency_manager/public/include/dm_component.h index cf709cd..b558aea 100644 --- a/dependency_manager/public/include/dm_component.h +++ b/dependency_manager/public/include/dm_component.h @@ -39,10 +39,10 @@ typedef struct dm_component *dm_component_pt; #define DM_COMPONENT_MAX_ID_LENGTH 64 #define DM_COMPONENT_MAX_NAME_LENGTH 128 -typedef celix_status_t (*init_fpt)(void *userData); -typedef celix_status_t (*start_fpt)(void *userData); -typedef celix_status_t (*stop_fpt)(void *userData); -typedef celix_status_t (*deinit_fpt)(void *userData); +typedef int (*init_fpt)(void *userData); +typedef int (*start_fpt)(void *userData); +typedef int (*stop_fpt)(void *userData); +typedef int (*deinit_fpt)(void *userData); celix_status_t component_create(bundle_context_pt context, const char *name, dm_component_pt *component); celix_status_t component_destroy(dm_component_pt *component); @@ -58,6 +58,15 @@ celix_status_t component_getInterfaces(dm_component_pt component, array_list_pt celix_status_t component_addServiceDependency(dm_component_pt component, dm_service_dependency_pt dep); celix_status_t component_removeServiceDependency(dm_component_pt component, dm_service_dependency_pt dependency); +#define component_setCallbacksSafe(dmCmp, type, init, start, stop, deinit) \ + do { \ + int (*tmp_init)(type) = (init); \ + int (*tmp_start)(type) = (start); \ + int (*tmp_stop)(type) = (stop); \ + int (*tmp_deinit)(type) = (deinit); \ + component_setCallbacks((dmCmp), (init_fpt)tmp_init, (start_fpt)tmp_start, (stop_fpt)tmp_stop, (deinit_fpt)tmp_deinit); \ + } while(0) + celix_status_t component_setCallbacks(dm_component_pt component, init_fpt init, start_fpt start, stop_fpt stop, deinit_fpt deinit); /** http://git-wip-us.apache.org/repos/asf/celix/blob/e302c2d3/dependency_manager/public/include/dm_info.h ---------------------------------------------------------------------- diff --git a/dependency_manager/public/include/dm_info.h b/dependency_manager/public/include/dm_info.h index dd9947c..99bb46a 100644 --- a/dependency_manager/public/include/dm_info.h +++ b/dependency_manager/public/include/dm_info.h @@ -57,7 +57,7 @@ struct dm_info_service { /*Note: dm_caller has the ownership of the result.*/ celix_status_t (*getInfo)(void *handle, dm_dependency_manager_info_pt *info); - void (*destroyInfo)(void *handle, dm_service_dependency_info_pt info); + void (*destroyInfo)(void *handle, dm_dependency_manager_info_pt info); }; typedef struct dm_info_service * dm_info_service_pt; http://git-wip-us.apache.org/repos/asf/celix/blob/e302c2d3/dependency_manager/public/include/dm_service_dependency.h ---------------------------------------------------------------------- diff --git a/dependency_manager/public/include/dm_service_dependency.h b/dependency_manager/public/include/dm_service_dependency.h index 337be01..1a98dea 100644 --- a/dependency_manager/public/include/dm_service_dependency.h +++ b/dependency_manager/public/include/dm_service_dependency.h @@ -33,11 +33,11 @@ typedef struct dm_service_dependency *dm_service_dependency_pt; -typedef celix_status_t (*service_set_fpt)(void *handle, void *service); -typedef celix_status_t (*service_add_fpt)(void *handle, void *service); -typedef celix_status_t (*service_change_fpt)(void *handle, void *service); -typedef celix_status_t (*service_remove_fpt)(void *handle, void *service); -typedef celix_status_t (*service_swap_fpt)(void *handle, void *oldService, void *newService); +typedef int (*service_set_fpt)(void *handle, void *service); +typedef int (*service_add_fpt)(void *handle, void *service); +typedef int (*service_change_fpt)(void *handle, void *service); +typedef int (*service_remove_fpt)(void *handle, void *service); +typedef int (*service_swap_fpt)(void *handle, void *oldService, void *newService); typedef celix_status_t (*service_set_with_ref_fpt)(void *handle, service_reference_pt reference, void *service); typedef celix_status_t (*service_add_with_ref_fpt)(void *handle, service_reference_pt reference, void *service); @@ -51,10 +51,22 @@ celix_status_t serviceDependency_destroy(dm_service_dependency_pt *dependency_pt celix_status_t serviceDependency_setRequired(dm_service_dependency_pt dependency, bool required); celix_status_t serviceDependency_setService(dm_service_dependency_pt dependency, char *serviceName, char *filter); celix_status_t serviceDependency_getFilter(dm_service_dependency_pt dependency, char **filter); + celix_status_t serviceDependency_setCallbacks(dm_service_dependency_pt dependency, service_set_fpt set, service_add_fpt add, service_change_fpt change, service_remove_fpt remove, service_swap_fpt swap); celix_status_t serviceDependency_setCallbacksWithServiceReference(dm_service_dependency_pt dependency, service_set_with_ref_fpt set, service_add_with_ref_fpt add, service_change_with_ref_fpt change, service_remove_with_ref_fpt remove, service_swap_with_ref_fpt swap); celix_status_t serviceDependency_setAutoConfigure(dm_service_dependency_pt dependency, celix_thread_mutex_t *service_lock, void **field); +#define serviceDependency_setCallbacksSafe(dep, cmpType, servType, set, add, change, remove, swap) \ + do { \ + int (*tmpSet)(cmpType, servType) = set; \ + int (*tmpAdd)(cmpType, servType) = add; \ + int (*tmpChange)(cmpType, servType) = change; \ + int (*tmpRemove)(cmpType, servType) = remove; \ + int (*tmpSwap)(cmpType, servType, servType) = swap; \ + serviceDependency_setCallbacks((dep), (service_set_fpt)tmpSet, (service_add_fpt)tmpAdd, (service_change_fpt)tmpChange, (service_remove_fpt)tmpRemove, (service_swap_fpt)tmpSwap); \ + } while(0) + + /** * Return a service dependency info. The caller is the owner */ http://git-wip-us.apache.org/repos/asf/celix/blob/e302c2d3/examples/dm_example/phase1/private/include/phase1_cmp.h ---------------------------------------------------------------------- diff --git a/examples/dm_example/phase1/private/include/phase1_cmp.h b/examples/dm_example/phase1/private/include/phase1_cmp.h index 55e3f15..5715f6e 100644 --- a/examples/dm_example/phase1/private/include/phase1_cmp.h +++ b/examples/dm_example/phase1/private/include/phase1_cmp.h @@ -34,6 +34,7 @@ phase1_cmp_t *phase1_create(void); int phase1_init(phase1_cmp_t *cmp); int phase1_start(phase1_cmp_t *cmp); int phase1_stop(phase1_cmp_t *cmp); +int phase1_deinit(phase1_cmp_t *cmp); void phase1_destroy(phase1_cmp_t *cmp); int phase1_getData(phase1_cmp_t *cmp, unsigned int *data); http://git-wip-us.apache.org/repos/asf/celix/blob/e302c2d3/examples/dm_example/phase1/private/src/phase1_activator.c ---------------------------------------------------------------------- diff --git a/examples/dm_example/phase1/private/src/phase1_activator.c b/examples/dm_example/phase1/private/src/phase1_activator.c index 60ab21d..4d20c97 100644 --- a/examples/dm_example/phase1/private/src/phase1_activator.c +++ b/examples/dm_example/phase1/private/src/phase1_activator.c @@ -53,7 +53,7 @@ celix_status_t dm_init(void * userData, bundle_context_pt context, dm_dependency if (act->phase1Cmp != NULL) { act->phase1Serv.handle = act->phase1Cmp; - act->phase1Serv.getData = phase1_getData; + act->phase1Serv.getData = (void *)phase1_getData; properties_pt props = properties_create(); properties_set(props, "id", "phase1"); @@ -61,7 +61,7 @@ celix_status_t dm_init(void * userData, bundle_context_pt context, dm_dependency dm_component_pt cmp; component_create(context, "PHASE1_PROCESSING_COMPONENT", &cmp); component_setImplementation(cmp, act->phase1Cmp); - component_setCallbacks(cmp, phase1_init, phase1_start, phase1_stop, phase1_destroy); + component_setCallbacksSafe(cmp, phase1_cmp_t *, phase1_init, phase1_start, phase1_stop, phase1_deinit); component_addInterface(cmp, PHASE1_NAME, &act->phase1Serv, props); dependencyManager_add(manager, cmp); http://git-wip-us.apache.org/repos/asf/celix/blob/e302c2d3/examples/dm_example/phase1/private/src/phase1_cmp.c ---------------------------------------------------------------------- diff --git a/examples/dm_example/phase1/private/src/phase1_cmp.c b/examples/dm_example/phase1/private/src/phase1_cmp.c index ba9d46e..e050ba2 100644 --- a/examples/dm_example/phase1/private/src/phase1_cmp.c +++ b/examples/dm_example/phase1/private/src/phase1_cmp.c @@ -71,6 +71,11 @@ int phase1_stop(phase1_cmp_t *cmp) { return 0; } +int phase1_deinit(phase1_cmp_t *cmp) { + printf("deinit phase1\n"); + return 0; +} + void phase1_destroy(phase1_cmp_t *cmp) { free(cmp); printf("destroy phase1\n"); http://git-wip-us.apache.org/repos/asf/celix/blob/e302c2d3/examples/dm_example/phase2a/private/include/phase2a_cmp.h ---------------------------------------------------------------------- diff --git a/examples/dm_example/phase2a/private/include/phase2a_cmp.h b/examples/dm_example/phase2a/private/include/phase2a_cmp.h index ecfc0f0..5b8431a 100644 --- a/examples/dm_example/phase2a/private/include/phase2a_cmp.h +++ b/examples/dm_example/phase2a/private/include/phase2a_cmp.h @@ -35,6 +35,7 @@ phase2a_cmp_t *phase2a_create(void); int phase2a_init(phase2a_cmp_t *cmp); int phase2a_start(phase2a_cmp_t *cmp); int phase2a_stop(phase2a_cmp_t *cmp); +int phase2a_deinit(phase2a_cmp_t *cmp); void phase2a_destroy(phase2a_cmp_t *cmp); int phase2a_setPhase1(phase2a_cmp_t *cmp, phase1_t *phase1); http://git-wip-us.apache.org/repos/asf/celix/blob/e302c2d3/examples/dm_example/phase2a/private/src/phase2a_activator.c ---------------------------------------------------------------------- diff --git a/examples/dm_example/phase2a/private/src/phase2a_activator.c b/examples/dm_example/phase2a/private/src/phase2a_activator.c index 96f32ab..9202a1f 100644 --- a/examples/dm_example/phase2a/private/src/phase2a_activator.c +++ b/examples/dm_example/phase2a/private/src/phase2a_activator.c @@ -62,14 +62,14 @@ celix_status_t dm_init(void * userData, bundle_context_pt context, dm_dependency dm_component_pt cmp; component_create(context, "PHASE2A_PROCESSING_COMPONENT", &cmp); component_setImplementation(cmp, act->phase2aCmp); - component_setCallbacks(cmp, (void *)phase2a_init, (void *)phase2a_start, (void *)phase2a_stop, (void *)phase2a_destroy); + component_setCallbacksSafe(cmp, phase2a_cmp_t *, phase2a_init, phase2a_start, phase2a_stop, phase2a_deinit); component_addInterface(cmp, PHASE2_NAME, &act->phase2Serv, props); dm_service_dependency_pt dep; serviceDependency_create(&dep); serviceDependency_setService(dep, PHASE1_NAME, NULL); - serviceDependency_setCallbacks(dep, phase2a_setPhase1, NULL, NULL, NULL, NULL); + serviceDependency_setCallbacksSafe(dep, phase2a_cmp_t *, phase1_t *, phase2a_setPhase1, NULL, NULL, NULL, NULL); serviceDependency_setRequired(dep, true); component_addServiceDependency(cmp, dep); http://git-wip-us.apache.org/repos/asf/celix/blob/e302c2d3/examples/dm_example/phase2a/private/src/phase2a_cmp.c ---------------------------------------------------------------------- diff --git a/examples/dm_example/phase2a/private/src/phase2a_cmp.c b/examples/dm_example/phase2a/private/src/phase2a_cmp.c index 2afa0d2..27c610a 100644 --- a/examples/dm_example/phase2a/private/src/phase2a_cmp.c +++ b/examples/dm_example/phase2a/private/src/phase2a_cmp.c @@ -73,6 +73,11 @@ int phase2a_stop(phase2a_cmp_t *cmp) { return 0; } +int phase2a_deinit(phase2a_cmp_t *cmp) { + printf("deinit phase1\n"); + return 0; +} + void phase2a_destroy(phase2a_cmp_t *cmp) { celixThreadMutex_lock(&cmp->mutex); celixThreadMutex_destroy(&cmp->mutex); http://git-wip-us.apache.org/repos/asf/celix/blob/e302c2d3/examples/dm_example/phase2b/private/include/phase2b_cmp.h ---------------------------------------------------------------------- diff --git a/examples/dm_example/phase2b/private/include/phase2b_cmp.h b/examples/dm_example/phase2b/private/include/phase2b_cmp.h index fedcd69..527975b 100644 --- a/examples/dm_example/phase2b/private/include/phase2b_cmp.h +++ b/examples/dm_example/phase2b/private/include/phase2b_cmp.h @@ -35,6 +35,7 @@ phase2b_cmp_t *phase2b_create(void); int phase2b_init(phase2b_cmp_t *cmp); int phase2b_start(phase2b_cmp_t *cmp); int phase2b_stop(phase2b_cmp_t *cmp); +int phase2b_deinit(phase2b_cmp_t *cmp); void phase2b_destroy(phase2b_cmp_t *cmp); int phase2b_setPhase1(phase2b_cmp_t *cmp, phase1_t *phase1); http://git-wip-us.apache.org/repos/asf/celix/blob/e302c2d3/examples/dm_example/phase2b/private/src/phase2b_activator.c ---------------------------------------------------------------------- diff --git a/examples/dm_example/phase2b/private/src/phase2b_activator.c b/examples/dm_example/phase2b/private/src/phase2b_activator.c index 82bfef1..c715bf5 100644 --- a/examples/dm_example/phase2b/private/src/phase2b_activator.c +++ b/examples/dm_example/phase2b/private/src/phase2b_activator.c @@ -62,14 +62,14 @@ celix_status_t dm_init(void * userData, bundle_context_pt context, dm_dependency dm_component_pt cmp; component_create(context, "PHASE2B_PROCESSING_COMPONENT", &cmp); component_setImplementation(cmp, act->phase2bCmp); - component_setCallbacks(cmp, (void *)phase2b_init, (void *)phase2b_start, (void *)phase2b_stop, (void *)phase2b_destroy); + component_setCallbacksSafe(cmp, phase2b_cmp_t *, phase2b_init, phase2b_start, phase2b_stop, phase2b_deinit); component_addInterface(cmp, PHASE2_NAME, &act->phase2Serv, props); dm_service_dependency_pt dep; serviceDependency_create(&dep); serviceDependency_setService(dep, PHASE1_NAME, NULL); - serviceDependency_setCallbacks(dep, phase2b_setPhase1, NULL, NULL, NULL, NULL); + serviceDependency_setCallbacksSafe(dep, phase2b_cmp_t *, phase1_t *, phase2b_setPhase1, NULL, NULL, NULL, NULL); serviceDependency_setRequired(dep, true); component_addServiceDependency(cmp, dep); http://git-wip-us.apache.org/repos/asf/celix/blob/e302c2d3/examples/dm_example/phase2b/private/src/phase2b_cmp.c ---------------------------------------------------------------------- diff --git a/examples/dm_example/phase2b/private/src/phase2b_cmp.c b/examples/dm_example/phase2b/private/src/phase2b_cmp.c index e1487b4..9d6d3d5 100644 --- a/examples/dm_example/phase2b/private/src/phase2b_cmp.c +++ b/examples/dm_example/phase2b/private/src/phase2b_cmp.c @@ -73,6 +73,11 @@ int phase2b_stop(phase2b_cmp_t *cmp) { return 0; } +int phase2b_deinit(phase2b_cmp_t *cmp) { + printf("deinit phase1\n"); + return 0; +} + void phase2b_destroy(phase2b_cmp_t *cmp) { celixThreadMutex_lock(&cmp->mutex); celixThreadMutex_destroy(&cmp->mutex); http://git-wip-us.apache.org/repos/asf/celix/blob/e302c2d3/examples/dm_example/phase3/private/include/phase3_cmp.h ---------------------------------------------------------------------- diff --git a/examples/dm_example/phase3/private/include/phase3_cmp.h b/examples/dm_example/phase3/private/include/phase3_cmp.h index 1b32f04..ec9282d 100644 --- a/examples/dm_example/phase3/private/include/phase3_cmp.h +++ b/examples/dm_example/phase3/private/include/phase3_cmp.h @@ -35,6 +35,7 @@ phase3_cmp_t *phase3_create(void); int phase3_init(phase3_cmp_t *cmp); int phase3_start(phase3_cmp_t *cmp); int phase3_stop(phase3_cmp_t *cmp); +int phase3_deinit(phase3_cmp_t *cmp); void phase3_destroy(phase3_cmp_t *cmp); int phase3_addPhase2(phase3_cmp_t *cmp, phase2_t *phase2); http://git-wip-us.apache.org/repos/asf/celix/blob/e302c2d3/examples/dm_example/phase3/private/src/phase3_activator.c ---------------------------------------------------------------------- diff --git a/examples/dm_example/phase3/private/src/phase3_activator.c b/examples/dm_example/phase3/private/src/phase3_activator.c index 2d8f3df..d79b785 100644 --- a/examples/dm_example/phase3/private/src/phase3_activator.c +++ b/examples/dm_example/phase3/private/src/phase3_activator.c @@ -56,12 +56,12 @@ celix_status_t dm_init(void * userData, bundle_context_pt context, dm_dependency dm_component_pt cmp; component_create(context, "PHASE3_PROCESSING_COMPONENT", &cmp); component_setImplementation(cmp, act->phase3Cmp); - component_setCallbacks(cmp, (void *)phase3_init, (void *)phase3_start, (void *)phase3_stop, (void *)phase3_destroy); + component_setCallbacksSafe(cmp, phase3_cmp_t *, phase3_init, phase3_start, phase3_stop, phase3_deinit); dm_service_dependency_pt dep; serviceDependency_create(&dep); serviceDependency_setService(dep, PHASE2_NAME, NULL); - serviceDependency_setCallbacks(dep, NULL, (void *)phase3_addPhase2, NULL, (void *)phase3_removePhase2, NULL); + serviceDependency_setCallbacksSafe(dep, phase3_cmp_t *, phase2_t *, NULL, phase3_addPhase2, NULL, phase3_removePhase2, NULL); serviceDependency_setRequired(dep, true); component_addServiceDependency(cmp, dep); http://git-wip-us.apache.org/repos/asf/celix/blob/e302c2d3/examples/dm_example/phase3/private/src/phase3_cmp.c ---------------------------------------------------------------------- diff --git a/examples/dm_example/phase3/private/src/phase3_cmp.c b/examples/dm_example/phase3/private/src/phase3_cmp.c index 5cd9f53..6f5b99b 100644 --- a/examples/dm_example/phase3/private/src/phase3_cmp.c +++ b/examples/dm_example/phase3/private/src/phase3_cmp.c @@ -75,6 +75,11 @@ int phase3_stop(phase3_cmp_t *cmp) { return 0; } +int phase3_deinit(phase3_cmp_t *cmp) { + printf("deinit phase1\n"); + return 0; +} + void phase3_destroy(phase3_cmp_t *cmp) { celixThreadMutex_lock(&cmp->mutex); celixThreadMutex_destroy(&cmp->mutex);