Lines Matching defs:locks
48 // gcc however, only allocates 4 bytes for regular locks, even on 64-bit
75 // When memory allocated for locks are on the lock pool (free list),
88 // 1. Test and set locks.
89 // 2. futex locks (Linux* OS on x86 and
91 // 3. Ticket (Lamport bakery) locks.
92 // 4. Queuing locks (with separate spin fields).
93 // 5. DRPA (Dynamically Reconfigurable Distributed Polling Area) locks
96 // 1. Bootstrap locks -- Used for a few locks available at library
99 // 2. Internal RTL locks -- Used everywhere else in the RTL
100 // 3. User locks (includes critical sections)
106 // Test and set locks.
108 // Non-nested test and set locks differ from the other lock kinds (except
113 // bytes, so we have to use a lock table for nested locks, and avoid accessing
114 // the depth_locked field for non-nested locks.
118 // set locks.
127 kmp_int32 depth_locked; // depth locked, for nested locks only
131 kmp_int32 depth_locked; // depth locked, for nested locks only
176 // futex locks. futex locks are only available on Linux* OS.
178 // Like non-nested test and set lock, non-nested futex locks use the memory
183 // set locks. With non-nested futex locks, the lock owner is not even available.
190 kmp_int32 depth_locked; // depth locked, for nested locks only
228 // Ticket locks.
245 std::atomic_int depth_locked; // depth locked, for nested locks only
259 std::atomic<int> depth_locked; // depth locked, for nested locks only
308 // Queuing locks.
319 /* So we can get stats from locks that haven't been destroyed. */
379 kmp_int32 depth_locked; // depth locked, for nested locks only
416 // Adaptive locks.
439 // DRDPA ticket locks.
465 // has a slightly different meaning in the DRDPA ticket locks (where it is
466 // written by the acquiring thread) than it does in the simple ticket locks
473 // Likewise, the vars used for nested locks (owner_id and depth_locked) are
513 // Bootstrap locks.
515 // Bootstrap locks -- very few locks used at library initialization time.
516 // Bootstrap locks are currently implemented as ticket locks.
547 // Internal RTL locks.
549 // Internal RTL locks are also implemented as ticket locks, for now.
579 // User locks.
950 Lock table is fully utilized. User locks are indexes, so table is used on
953 table for regular locks, but do need the table for nested locks.
973 void *locks;
1017 // indirect locks.
1019 // Direct locks:
1028 // Indirect locks:
1048 // List of lock definitions; all nested locks are indirect locks.
1050 // All nested locks are indirect lock types.
1084 8 // number of low bits to be used as tag for direct locks
1091 // Base type for dynamic locks.
1131 // Function tables for direct locks. Set/unset/test differentiate functions
1139 // Function tables for indirect locks. Set/unset/test differentiate functions
1184 // locks.
1191 // Cleans up global states and data structures for managing dynamic user locks.
1194 // Default user lock sequence when not using hinted locks.
1197 // Jump table for "set lock location", available only for indirect locks.
1206 // Jump table for "set lock flags", available only for indirect locks.
1215 // Jump table for "get lock location", available only for indirect locks.
1223 // Jump table for "get lock flags", available only for indirect locks.
1238 // Lock table for indirect locks.
1240 kmp_indirect_lock_t **table; // blocks of indirect locks allocated
1267 // Number of locks in a lock block, which is fixed to "1" now.
1289 // data structure for using backoff within spin locks.