int erl_drv_rwlock_tryrlock(ErlDrvRWLock *drwlck) { #ifdef USE_THREADS if (!drwlck) fatal_error(EINVAL, "erl_drv_rwlock_tryrlock()"); return ethr_rwmutex_tryrlock(&drwlck->rwmtx); #else return 0; #endif }
int erl_drv_rwlock_tryrlock(ErlDrvRWLock *drwlck) { #ifdef USE_THREADS int res = drwlck ? ethr_rwmutex_tryrlock(&drwlck->rwmtx) : EINVAL; if (res != 0 && res != EBUSY) fatal_error(res, "erl_drv_rwlock_tryrlock()"); return res; #else return 0; #endif }