Update ctdb_remove_message_handler to provide a nonblocking async version
[sahlberg/ctdb.git] / include / ctdb.h
index 807204b27fac3b1092ef9250f8717ef7bf2ee893..12bdb8957f920a1fd36d90f8eb2c0a3f5edc0311 100644 (file)
@@ -55,10 +55,22 @@ ctdb_set_message_handler_send(struct ctdb_context *ctdb, uint64_t srvid,
 int ctdb_set_message_handler_recv(struct ctdb_context *ctdb,
                                  ctdb_handle *handle);
 
-int ctdb_set_message_handler(struct ctdb_context *ctdb, uint64_t srvid, ctdb_message_fn_t handler, void *private_data);
+int ctdb_set_message_handler(struct ctdb_context *ctdb, uint64_t srvid,
+                            ctdb_message_fn_t handler, void *private_data);
 
 
-int ctdb_remove_message_handler(struct ctdb_context *ctdb, uint64_t srvid, void *private_data);
+typedef void (*ctdb_remove_message_handler_cb)(int32_t status, void *private_data);
+
+ctdb_handle *
+ctdb_remove_message_handler_send(struct ctdb_context *ctdb, uint64_t srvid,
+                                ctdb_remove_message_handler_cb callback,
+                                void *private_data);
+
+int ctdb_remove_message_handler_recv(struct ctdb_context *ctdb,
+                                 ctdb_handle *handle);
+
+int ctdb_remove_message_handler(struct ctdb_context *ctdb, uint64_t srvid,
+                               void *private_data);
 
 int ctdb_send_message(struct ctdb_context *ctdb, uint32_t pnn, uint64_t srvid, TDB_DATA data);