We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 419550b commit 25cd751Copy full SHA for 25cd751
c_src/main.c
@@ -81,17 +81,20 @@ erlfdb_future_cb(FDBFuture* fdb_future, void* data)
81
if(enif_thread_type() == ERL_NIF_THR_UNDEFINED) {
82
caller = NULL;
83
} else {
84
+ enif_mutex_lock(future->lock);
85
caller = future->pid_env;
86
}
87
- enif_mutex_lock(future->lock);
88
+
89
90
if(!future->cancelled) {
91
msg = T2(future->msg_env, future->msg_ref, ATOM_ready);
92
enif_send(caller, &(future->pid), future->msg_env, msg);
93
94
- enif_mutex_unlock(future->lock);
95
+ if (caller) {
96
+ enif_mutex_unlock(future->lock);
97
+ }
98
99
// We're now done with this future which means we need
100
// to release our handle to it. See erlfdb_create_future
0 commit comments