Subversion Repositories HelenOS-historic

Rev

Rev 532 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 532 Rev 534
Line -... Line 1...
-
 
1
 
-
 
2
                                 SPINNING LOCKS
-
 
3
                spinlock_lock, spinlock_trylock, spinlock_unlock
-
 
4
                                 +------------+
-
 
5
                                 | spinlock_t |
-
 
6
                                 +------------+
-
 
7
 
-
 
8
                                   WAIT QUEUES
-
 
9
                         waitq_sleep_timeout, waitq_wakeup
-
 
10
                                   +---------+
-
 
11
                                   | waitq_t |
-
 
12
			           +---------+
-
 
13
				  /           \
-
 
14
               SEMAPHORES        /             \  CONDITION VARIABLES
-
 
15
 semaphore_down_timeout, semaphore_up    condvar_wait_timeout, condvar_signal
-
 
16
            +--------------+   /                 \   +-----------+
-
 
17
            | semaphore_t  |<-+                   +->| condvar_t |
-
 
18
            +--------------+                         +-----------+
-
 
19
                   |                                       ^
-
 
20
		   |                                       |
-
 
21
                   |                                +------+
-
 
22
                   V                               /           
-
 
23
                MUTEXES                           / READERS/WRITERS LOCKS
-
 
24
    mutex_lock_timeout, mutex_unlock   rwlock_reader/writer_lock_timeout, rwlock_unlock
-
 
25
              +---------+                       /        +----------+
-
 
26
	      | mutex_t |------------------------------->| rwlock_t |
-
 
27
	      +---------+                     /          +----------+
-
 
28
	           |                         /
-
 
29
		   +------------------------+