コード例 #1
0
ファイル: sync.c プロジェクト: robertsami/COS318
// Return 0 on succes
// Return 1 on failure due to deadlock (extra credit)
int lock_acquire(lock_t * l){
    enter_critical();
    int result = lock_acquire_helper(l);
    leave_critical();

    return result;
}
コード例 #2
0
ファイル: sync.c プロジェクト: ahimelman/project3
/* TODO: Release lock m and block the thread (enqueued on c).  When unblocked,
   re-acquire m */
void condition_wait(lock_t * m, condition_t * c){
    enter_critical();
    lock_release_helper(m);
    block(&c->wait_queue);
    lock_acquire_helper(m);
    leave_critical();
}