Hi all,
The attached patch is a try to improve the async version of lck library.
I've tested it with test/testlck so far.
Please help to review it. Thanks.
diff -Nru openais/exec/lck.c openais-modify/exec/lck.c
--- openais/exec/lck.c 2008-01-02 08:51:12.000000000 -0500
+++ openais-modify/exec/lck.c 2008-05-13 07:12:15.000000000 -0400
@@ -1287,11 +1287,11 @@
res_lib_lck_resourceunlockasync.lockId = req_exec_lck_resourceunlock->lock_id;
openais_conn_send_response (
- openais_conn_partner_get(req_exec_lck_resourceunlock->source.conn),
+ req_exec_lck_resourceunlock->source.conn,
&res_lib_lck_resourceunlockasync,
sizeof (struct res_lib_lck_resourceunlockasync));
openais_conn_send_response (
- openais_conn_partner_get(resource_lock->callback_source.conn),
+ openais_conn_partner_get(req_exec_lck_resourceunlock->source.conn),
&res_lib_lck_resourceunlockasync,
sizeof (struct res_lib_lck_resourceunlockasync));
} else {
@@ -1419,6 +1419,7 @@
req_exec_lck_resourceopen.resource_handle = req_lib_lck_resourceopen->resourceHandle;
req_exec_lck_resourceopen.invocation = req_lib_lck_resourceopen->invocation;
req_exec_lck_resourceopen.open_flags = req_lib_lck_resourceopen->resourceOpenFlags;
+ req_exec_lck_resourceopen.fail_with_error = SA_AIS_OK;
req_exec_lck_resourceopen.timeout = 0;
req_exec_lck_resourceopen.async_call = 1;
@@ -1532,6 +1533,7 @@
req_exec_lck_resourcelock.resource_handle = req_lib_lck_resourcelock->resourceHandle;
req_exec_lck_resourcelock.async_call = 1;
req_exec_lck_resourcelock.invocation = req_lib_lck_resourcelock->invocation;
+ req_exec_lck_resourcelock.fail_with_error = SA_AIS_OK;
iovecs[0].iov_base = (char *)&req_exec_lck_resourcelock;
iovecs[0].iov_len = sizeof (req_exec_lck_resourcelock);
diff -Nru openais/lib/lck.c openais-modify/lib/lck.c
--- openais/lib/lck.c 2008-01-02 08:51:12.000000000 -0500
+++ openais-modify/lib/lck.c 2008-05-13 07:13:34.000000000 -0400
@@ -463,6 +463,9 @@
res_lib_lck_resourceopenasync->invocation,
res_lib_lck_resourceopenasync->resourceHandle,
res_lib_lck_resourceopenasync->header.error);
+ memcpy (&lckResourceInstance->source,
+ &res_lib_lck_resourceopenasync->source,
+ sizeof (mar_message_source_t));
saHandleInstancePut (&lckResourceHandleDatabase,
res_lib_lck_resourceopenasync->resourceHandle);
} else {
@@ -756,6 +759,8 @@
lckResourceInstance->lckResourceHandle = lckResourceHandle;
lckResourceInstance->resourceOpenFlags = resourceOpenFlags;
+ marshall_to_mar_name_t (&req_lib_lck_resourceopen.lockResourceName,
+ (SaNameT *)lockResourceName);
memcpy (&lckResourceInstance->lockResourceName, lockResourceName, sizeof (SaNameT));
req_lib_lck_resourceopen.header.size = sizeof (struct req_lib_lck_resourceopen);
req_lib_lck_resourceopen.header.id = MESSAGE_REQ_LCK_RESOURCEOPENASYNC;
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais