Skip to content

Commit a24fd78

Browse files
committed
SMP deadlock, revert first commit
Will squash later.. Signed-off-by: Peter M <petermm@gmail.com>
1 parent 2f86b99 commit a24fd78

File tree

1 file changed

+1
-4
lines changed

1 file changed

+1
-4
lines changed

src/libAtomVM/resources.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -397,17 +397,14 @@ int enif_monitor_process(ErlNifEnv *env, void *obj, const ErlNifPid *target_pid,
397397
return -1;
398398
}
399399

400-
struct ListHead *monitors_head = synclist_wrlock(&resource_type->monitors);
401400
Context *target = globalcontext_get_process_lock(env->global, *target_pid);
402401
if (IS_NULL_PTR(target)) {
403-
synclist_unlock(&resource_type->monitors);
404402
free(resource_monitor);
405403
free(monitor);
406404
return 1;
407405
}
408406

409-
list_append(monitors_head, &resource_monitor->resource_list_head);
410-
synclist_unlock(&resource_type->monitors);
407+
synclist_append(&resource_type->monitors, &resource_monitor->resource_list_head);
411408
mailbox_send_monitor_signal(target, MonitorSignal, monitor);
412409
globalcontext_get_process_unlock(env->global, target);
413410

0 commit comments

Comments
 (0)