X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=libust%2Ftracepoint.c;h=20c4767c7e0dc2c877d38dfad53ab049502302e4;hb=e6af533d5eb211b3b01834621a1c022e07b124de;hp=584b3ffe1af50ffdb01f383ed9ba6ace0fb267bc;hpb=909bc43f70be2b1d3efcefe33121ee1e99d9895b;p=lttng-ust.git diff --git a/libust/tracepoint.c b/libust/tracepoint.c index 584b3ffe..20c4767c 100644 --- a/libust/tracepoint.c +++ b/libust/tracepoint.c @@ -678,10 +678,22 @@ int tracepoint_register_lib(struct tracepoint *tracepoints_start, int tracepoint return 0; } -int tracepoint_unregister_lib(struct tracepoint *tracepoints_start, int tracepoints_count) +int tracepoint_unregister_lib(struct tracepoint *tracepoints_start) { - /*FIXME: implement; but before implementing, tracepoint_register_lib must - have appropriate locking. */ + struct tracepoint_lib *lib; + + mutex_lock(&tracepoints_mutex); + + list_for_each_entry(lib, &libs, list) { + if(lib->tracepoints_start == tracepoints_start) { + struct tracepoint_lib *lib2free = lib; + list_del(&lib->list); + free(lib2free); + break; + } + } + + mutex_unlock(&tracepoints_mutex); return 0; }