aboutsummaryrefslogtreecommitdiff
path: root/src/core/device.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/device.c')
-rw-r--r--src/core/device.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/core/device.c b/src/core/device.c
index 6def9f64..e3b1d220 100644
--- a/src/core/device.c
+++ b/src/core/device.c
@@ -188,12 +188,12 @@ nni_device_start(nni_device_data *dd, nni_aio *user)
{
int i;
- nni_mtx_lock(&dd->mtx);
- dd->user = user;
- if (nni_aio_start(user, nni_device_cancel, dd) != 0) {
- nni_mtx_unlock(&dd->mtx);
+ if (nni_aio_begin(user) != 0) {
return;
}
+ nni_mtx_lock(&dd->mtx);
+ nni_aio_schedule(user, nni_device_cancel, dd);
+ dd->user = user;
for (i = 0; i < dd->npath; i++) {
nni_device_path *p = &dd->paths[i];
p->user = user;