blob: ceac80eff5f82650a4e8a0b31b6b4ed8d8e52e3a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
brief: |
Waits at the barrier.
copyrights:
- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
definition:
default:
attributes: null
body: null
params:
- ${../../type/if/id:/name} ${.:/params[0]/name}
- ${../../type/if/interval:/name} ${.:/params[1]/name}
return: ${../../status/if/code:/name}
variants: []
description: |
This directive waits at the barrier specified by ${.:/params[0]/name}. The
${.:/params[1]/name} parameter defines how long the calling task is willing
to wait. Use ${../../type/if/no-timeout:/name} to wait potentially forever,
otherwise set a timeout interval in clock ticks.
Conceptually, the calling task should always be thought of as blocking when
it makes this call and being unblocked when the barrier is released. If the
barrier is configured for manual release, this rule of thumb will always be
valid. If the barrier is configured for automatic release, all callers will
block except for the one which trips the automatic release condition.
enabled-by: true
index-entries:
- wait at a barrier
interface-type: function
links:
- role: interface-placement
uid: header
- role: interface-ingroup
uid: group
- role: constraint
uid: /constraint/directive-ctx-task
- role: constraint
uid: /constraint/clock-tick
name: rtems_barrier_wait
notes: |
For automatic release barriers, the maximum count of waiting tasks is defined
during barrier creation, see ${create:/name}.
params:
- description: |
is the barrier identifier.
dir: null
name: id
- description: |
is the timeout in clock ticks. Use ${../../type/if/no-timeout:/name} to
wait potentially forever.
dir: null
name: timeout
return:
return: null
return-values:
- description: |
The requested operation was successful.
value: ${../../status/if/successful:/name}
- description: |
There was no barrier associated with the identifier specified by
${.:/params[0]/name}.
value: ${../../status/if/invalid-id:/name}
- description: |
The timeout happened while the calling task was waiting at the barrier.
value: ${../../status/if/timeout:/name}
- description: |
The barrier was deleted while the calling task was waiting at the
barrier.
value: ${../../status/if/object-was-deleted:/name}
type: interface
|