|
@@ -53,15 +53,17 @@ static AEVENTTYPE async_helper_event;
|
|
|
|
|
|
static LOCKTYPE async_helper_lock;
|
|
|
|
|
|
-int install_async_event (PAL_HANDLE object, unsigned long time,
|
|
|
- void (*callback) (IDTYPE caller, void * arg),
|
|
|
- void * arg)
|
|
|
+
|
|
|
+uint64_t install_async_event (PAL_HANDLE object, unsigned long time,
|
|
|
+ void (*callback) (IDTYPE caller, void * arg),
|
|
|
+ void * arg)
|
|
|
{
|
|
|
struct async_event * event =
|
|
|
malloc(sizeof(struct async_event));
|
|
|
|
|
|
unsigned long install_time = DkSystemTimeQuery();
|
|
|
-
|
|
|
+ uint64_t rv = 0;
|
|
|
+
|
|
|
debug("install async event at %llu\n", install_time);
|
|
|
|
|
|
event->callback = callback;
|
|
@@ -97,6 +99,7 @@ int install_async_event (PAL_HANDLE object, unsigned long time,
|
|
|
*/
|
|
|
listp_del(tmp, &async_list, list);
|
|
|
free(tmp);
|
|
|
+ rv = tmp->expire_time - install_time;
|
|
|
} else
|
|
|
tmp = NULL;
|
|
|
|
|
@@ -114,7 +117,7 @@ int install_async_event (PAL_HANDLE object, unsigned long time,
|
|
|
unlock(async_helper_lock);
|
|
|
|
|
|
set_event(&async_helper_event, 1);
|
|
|
- return 0;
|
|
|
+ return rv;
|
|
|
}
|
|
|
|
|
|
int init_async (void)
|