~drizzle-trunk/drizzle/development

1933.1.9 by Brian Aker
Additional documentation and testing.
1
User Defined Barriers
2
=====================
3
2194.5.3 by Andrew Hutchings
Markup fixes
4
.. code-block:: mysql
5
6
  SELECT create_barrier();
7
8
  SELECT release_barrier();
9
10
  SELECT wait();
11
12
  SELECT wait_until();
13
14
  SELECT signal();
1933.1.9 by Brian Aker
Additional documentation and testing.
15
2222.2.1 by Mark Atwood
documentation work
16
A barrier is a synchronization object which can be used to synchronize
17
a group of sessions to a specific rendezvous by calling wait(). When
18
wait() is called, any session of the user may call signal(), allowing
19
all sessions being held by wait() to proceed.
20
21
Barriers can optionally be created with a limit so that once a set
22
number of sessions have called wait() that all "waiters" are then
23
allowed to proceed.
24
25
The session that creates the barrier via create_barrier() is not
26
allowed to call either wait() or wait_until().
1933.1.9 by Brian Aker
Additional documentation and testing.
27
28
The scope of barriers is to the given username.
29
2222.2.1 by Mark Atwood
documentation work
30
Beyond waiters, you can also create observers by using the
31
wait_until() function. Observers are released not only when signal()
32
or release_barrier() is called, but also when their definitive
33
predicate happens. You can use wait_until() to have a session wait for
34
a certain number of waiters to occur, and then do some body of work
35
before the waiters() are signaled to continue.
1994.4.69 by Marisa Plumb
edits and more conditional functions
36
2222.2.1 by Mark Atwood
documentation work
37
All waiters and observers are released if release_barrier() is called
38
by the session which created the barrier. Also, if the session that
39
created the barrier disconnects, all waiters and observers are
40
notified.
1994.4.69 by Marisa Plumb
edits and more conditional functions
41
42
Information on all barriers can be found in the DATA_DICTIONARY.USER_BARRIERS table.
43