pthread

package
v0.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 18, 2023 License: BSD-3-Clause Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CLOCK_BOOTTIME                  = 7      // time.h:60:1:
	CLOCK_BOOTTIME_ALARM            = 9      // time.h:64:1:
	CLOCK_MONOTONIC                 = 1      // time.h:48:1:
	CLOCK_MONOTONIC_COARSE          = 6      // time.h:58:1:
	CLOCK_MONOTONIC_RAW             = 4      // time.h:54:1:
	CLOCK_PROCESS_CPUTIME_ID        = 2      // time.h:50:1:
	CLOCK_REALTIME                  = 0      // time.h:46:1:
	CLOCK_REALTIME_ALARM            = 8      // time.h:62:1:
	CLOCK_REALTIME_COARSE           = 5      // time.h:56:1:
	CLOCK_TAI                       = 11     // time.h:66:1:
	CLOCK_THREAD_CPUTIME_ID         = 3      // time.h:52:1:
	PTHREAD_BARRIER_SERIAL_THREAD   = -1     // pthread.h:189:1:
	PTHREAD_ONCE_INIT               = 0      // pthread.h:182:1:
	SCHED_FIFO                      = 1      // sched.h:29:1:
	SCHED_OTHER                     = 0      // sched.h:28:1:
	SCHED_RR                        = 2      // sched.h:30:1:
	TIMER_ABSTIME                   = 1      // time.h:69:1:
	TIME_UTC                        = 1      // time.h:65:1:
	X_ATFILE_SOURCE                 = 1      // features.h:342:1:
	X_BITS_CPU_SET_H                = 1      // cpu-set.h:21:1:
	X_BITS_ENDIANNESS_H             = 1      // endianness.h:2:1:
	X_BITS_ENDIAN_H                 = 1      // endian.h:20:1:
	X_BITS_PTHREADTYPES_ARCH_H      = 1      // pthreadtypes-arch.h:19:1:
	X_BITS_PTHREADTYPES_COMMON_H    = 1      // pthreadtypes.h:20:1:
	X_BITS_SCHED_H                  = 1      // sched.h:21:1:
	X_BITS_SETJMP_H                 = 1      // setjmp.h:20:1:
	X_BITS_TIME64_H                 = 1      // time64.h:24:1:
	X_BITS_TIME_H                   = 1      // time.h:24:1:
	X_BITS_TYPESIZES_H              = 1      // typesizes.h:24:1:
	X_BITS_TYPES_H                  = 1      // types.h:24:1:
	X_BITS_TYPES_LOCALE_T_H         = 1      // locale_t.h:20:1:
	X_BITS_TYPES_STRUCT_SCHED_PARAM = 1      // struct_sched_param.h:20:1:
	X_BITS_TYPES___LOCALE_T_H       = 1      // __locale_t.h:21:1:
	X_BSD_SIZE_T_                   = 0      // stddef.h:189:1:
	X_BSD_SIZE_T_DEFINED_           = 0      // stddef.h:192:1:
	X_DEFAULT_SOURCE                = 1      // features.h:227:1:
	X_FEATURES_H                    = 1      // features.h:19:1:
	X_FILE_OFFSET_BITS              = 64     // <builtin>:25:1:
	X_GCC_SIZE_T                    = 0      // stddef.h:195:1:
	X_LP64                          = 1      // <predefined>:284:1:
	X_POSIX_C_SOURCE                = 200809 // features.h:281:1:
	X_POSIX_SOURCE                  = 1      // features.h:279:1:
	X_PTHREAD_H                     = 1      // pthread.h:19:1:
	X_RWLOCK_INTERNAL_H             = 0      // struct_rwlock.h:21:1:
	X_SCHED_H                       = 1      // sched.h:20:1:
	X_SIZET_                        = 0      // stddef.h:196:1:
	X_SIZE_T                        = 0      // stddef.h:183:1:
	X_SIZE_T_                       = 0      // stddef.h:188:1:
	X_SIZE_T_DECLARED               = 0      // stddef.h:193:1:
	X_SIZE_T_DEFINED                = 0      // stddef.h:191:1:
	X_SIZE_T_DEFINED_               = 0      // stddef.h:190:1:
	X_STDC_PREDEF_H                 = 1      // <predefined>:162:1:
	X_STRUCT_TIMESPEC               = 1      // struct_timespec.h:3:1:
	X_SYS_CDEFS_H                   = 1      // cdefs.h:19:1:
	X_SYS_SIZE_T_H                  = 0      // stddef.h:184:1:
	X_THREAD_MUTEX_INTERNAL_H       = 1      // struct_mutex.h:20:1:
	X_THREAD_SHARED_TYPES_H         = 1      // thread-shared-types.h:20:1:
	X_TIME_H                        = 1      // time.h:23:1:
	X_T_SIZE                        = 0      // stddef.h:186:1:
	X_T_SIZE_                       = 0      // stddef.h:185:1:
	Linux                           = 1      // <predefined>:231:1:
	Unix                            = 1      // <predefined>:177:1:
)
View Source
const (
	PTHREAD_RWLOCK_PREFER_READER_NP              = 0
	PTHREAD_RWLOCK_PREFER_WRITER_NP              = 1
	PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP = 2
	PTHREAD_RWLOCK_DEFAULT_NP                    = 0
)

Read-write lock types.

View Source
const (
	PTHREAD_INHERIT_SCHED  = 0
	PTHREAD_EXPLICIT_SCHED = 1
)

Scheduler inheritance.

View Source
const (
	PTHREAD_SCOPE_SYSTEM  = 0
	PTHREAD_SCOPE_PROCESS = 1
)

Scope handling.

View Source
const (
	PTHREAD_PROCESS_PRIVATE = 0
	PTHREAD_PROCESS_SHARED  = 1
)

Process shared or private flag.

View Source
const (
	PTHREAD_CANCEL_ENABLE  = 0
	PTHREAD_CANCEL_DISABLE = 1
)

Cancellation

View Source
const (
	PTHREAD_CANCEL_DEFERRED     = 0
	PTHREAD_CANCEL_ASYNCHRONOUS = 1
)
View Source
const (
	PTHREAD_CREATE_JOINABLE = 0
	PTHREAD_CREATE_DETACHED = 1
)

Detach state.

View Source
const (
	PTHREAD_MUTEX_TIMED_NP      = 0
	PTHREAD_MUTEX_RECURSIVE_NP  = 1
	PTHREAD_MUTEX_ERRORCHECK_NP = 2
	PTHREAD_MUTEX_ADAPTIVE_NP   = 3
	PTHREAD_MUTEX_NORMAL        = 0
	PTHREAD_MUTEX_RECURSIVE     = 1
	PTHREAD_MUTEX_ERRORCHECK    = 2
	PTHREAD_MUTEX_DEFAULT       = 0
)

Mutex types.

View Source
const (
	PTHREAD_MUTEX_STALLED    = 0
	PTHREAD_MUTEX_STALLED_NP = 0
	PTHREAD_MUTEX_ROBUST     = 1
	PTHREAD_MUTEX_ROBUST_NP  = 1
)

Robust mutex or not flags.

View Source
const (
	PTHREAD_PRIO_NONE    = 0
	PTHREAD_PRIO_INHERIT = 1
	PTHREAD_PRIO_PROTECT = 2
)

Mutex protocols.

Variables

View Source
var CAPI = map[string]struct{}{}

Functions

This section is empty.

Types

type Clock_t

type Clock_t = X__clock_t /* clock_t.h:7:19 */

Returned by `clock'.

type Clockid_t

type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */

Clock ID used in clock and timer functions.

type Cpu_set_t

type Cpu_set_t = struct{ F__bits [16]X__cpu_mask } /* cpu-set.h:42:3 */

Data structure to describe CPU mask.

type Itimerspec

type Itimerspec = struct {
	Fit_interval struct {
		Ftv_sec  X__time_t
		Ftv_nsec X__syscall_slong_t
	}
	Fit_value struct {
		Ftv_sec  X__time_t
		Ftv_nsec X__syscall_slong_t
	}

} /* struct_itimerspec.h:8:1 */

POSIX.1b structure for timer start values and intervals.

type Locale_t

type Locale_t = X__locale_t /* locale_t.h:24:20 */

type Pid_t

type Pid_t = X__pid_t /* sched.h:38:17 */

type Pthread_attr_t

type Pthread_attr_t = Pthread_attr_t1 /* pthreadtypes.h:62:30 */

type Pthread_attr_t1

type Pthread_attr_t1 = struct {
	F__ccgo_pad1 [0]uint64
	F__size      [56]int8

} /* pthreadtypes.h:56:1 */

type Pthread_barrier_t

type Pthread_barrier_t = struct {
	F__ccgo_pad1 [0]uint64
	F__size      [32]int8

} /* pthreadtypes.h:112:3 */

POSIX barriers data type. The structure of the type is

deliberately not exposed.

type Pthread_barrierattr_t

type Pthread_barrierattr_t = struct {
	F__ccgo_pad1 [0]uint32
	F__size      [4]int8

} /* pthreadtypes.h:118:3 */

type Pthread_cond_t

type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */

type Pthread_condattr_t

type Pthread_condattr_t = struct {
	F__ccgo_pad1 [0]uint32
	F__size      [4]int8

} /* pthreadtypes.h:45:3 */

Data structure for condition variable handling. The structure of

the attribute type is not exposed on purpose.

type Pthread_key_t

type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */

Keys for thread-specific data

type Pthread_mutex_t

type Pthread_mutex_t = struct{ F__data X__pthread_mutex_s } /* pthreadtypes.h:72:3 */

type Pthread_mutexattr_t

type Pthread_mutexattr_t = struct {
	F__ccgo_pad1 [0]uint32
	F__size      [4]int8

} /* pthreadtypes.h:36:3 */

Data structures for mutex handling. The structure of the attribute

type is not exposed on purpose.

type Pthread_once_t

type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */

Once-only execution

type Pthread_rwlock_t

type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */

Data structure for reader-writer lock variable handling. The

structure of the attribute type is deliberately not exposed.

type Pthread_rwlockattr_t

type Pthread_rwlockattr_t = struct {
	F__ccgo_pad1 [0]uint64
	F__size      [8]int8

} /* pthreadtypes.h:97:3 */

type Pthread_spinlock_t

type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */

POSIX spinlock data type.

type Pthread_t

type Pthread_t = uint64 /* pthreadtypes.h:27:27 */

Thread identifiers. The structure of the attribute type is not

exposed on purpose.

type Ptrdiff_t

type Ptrdiff_t = int64 /* <builtin>:3:26 */

type Sched_param

type Sched_param = struct{ Fsched_priority int32 } /* struct_sched_param.h:23:1 */

Data structure to describe a process' schedulability.

type Size_t

type Size_t = uint64 /* <builtin>:9:23 */

type Time_t

type Time_t = X__time_t /* time_t.h:7:18 */

Returned by `time'.

type Timer_t

type Timer_t = X__timer_t /* timer_t.h:7:19 */

Timer ID returned by `timer_create'.

type Timespec

type Timespec = struct {
	Ftv_sec  X__time_t
	Ftv_nsec X__syscall_slong_t

} /* struct_timespec.h:10:1 */

POSIX.1b structure for a time value. This is like a `struct timeval' but

has nanoseconds instead of microseconds.

type Tm

type Tm = struct {
	Ftm_sec      int32
	Ftm_min      int32
	Ftm_hour     int32
	Ftm_mday     int32
	Ftm_mon      int32
	Ftm_year     int32
	Ftm_wday     int32
	Ftm_yday     int32
	Ftm_isdst    int32
	F__ccgo_pad1 [4]byte
	Ftm_gmtoff   int64
	Ftm_zone     uintptr

} /* struct_tm.h:7:1 */

ISO C `broken-down time' structure.

type Wchar_t

type Wchar_t = int32 /* <builtin>:15:24 */

type X__blkcnt64_t

type X__blkcnt64_t = int64 /* types.h:180:30 */

type X__blkcnt_t

type X__blkcnt_t = int64 /* types.h:179:28 */

Type to count number of disk blocks.

type X__blksize_t

type X__blksize_t = int64 /* types.h:174:29 */

Type to represent block size.

type X__builtin_va_list

type X__builtin_va_list = uintptr /* <builtin>:46:14 */

type X__caddr_t

type X__caddr_t = uintptr /* types.h:203:14 */

type X__clock_t

type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts.

type X__clockid_t

type X__clockid_t = int32 /* types.h:168:29 */

Clock ID used in clock and timer functions.

type X__cpu_mask

type X__cpu_mask = uint64 /* cpu-set.h:32:25 */

Type for array elements in 'cpu_set_t'.

type X__daddr_t

type X__daddr_t = int32 /* types.h:164:27 */ // The type of a disk address.

type X__dev_t

type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers.

type X__float128

type X__float128 = float64 /* <builtin>:47:21 */

type X__fsblkcnt64_t

type X__fsblkcnt64_t = uint64 /* types.h:184:32 */

type X__fsblkcnt_t

type X__fsblkcnt_t = uint64 /* types.h:183:30 */

Type to count file system blocks.

type X__fsfilcnt64_t

type X__fsfilcnt64_t = uint64 /* types.h:188:32 */

type X__fsfilcnt_t

type X__fsfilcnt_t = uint64 /* types.h:187:30 */

Type to count file system nodes.

type X__fsid_t

type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.

type X__fsword_t

type X__fsword_t = int64 /* types.h:191:28 */

Type of miscellaneous file system fields.

type X__gid_t

type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications.

type X__id_t

type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs.

type X__ino64_t

type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS).

type X__ino_t

type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers.

type X__int128_t

type X__int128_t = struct {
	Flo int64
	Fhi int64

} /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128

type X__int16_t

type X__int16_t = int16 /* types.h:39:26 */

type X__int32_t

type X__int32_t = int32 /* types.h:41:20 */

type X__int64_t

type X__int64_t = int64 /* types.h:44:25 */

type X__int8_t

type X__int8_t = int8 /* types.h:37:21 */

Fixed-size types, underlying types depend on word size and compiler.

type X__int_least16_t

type X__int_least16_t = X__int16_t /* types.h:54:19 */

type X__int_least32_t

type X__int_least32_t = X__int32_t /* types.h:56:19 */

type X__int_least64_t

type X__int_least64_t = X__int64_t /* types.h:58:19 */

type X__int_least8_t

type X__int_least8_t = X__int8_t /* types.h:52:18 */

Smallest types with at least a given width.

type X__intmax_t

type X__intmax_t = int64 /* types.h:72:18 */

Largest integral types.

type X__intptr_t

type X__intptr_t = int64 /* types.h:206:25 */

Duplicates info from stdint.h but this is used in unistd.h.

type X__jmp_buf

type X__jmp_buf = [8]int64 /* setjmp.h:31:18 */

type X__key_t

type X__key_t = int32 /* types.h:165:25 */ // Type of an IPC key.

type X__locale_struct

type X__locale_struct = struct {
	F__locales       [13]uintptr
	F__ctype_b       uintptr
	F__ctype_tolower uintptr
	F__ctype_toupper uintptr
	F__names         [13]uintptr

} /* __locale_t.h:28:1 */

type X__locale_t

type X__locale_t = uintptr /* __locale_t.h:42:32 */

type X__loff_t

type X__loff_t = X__off64_t /* types.h:202:19 */ // Type of file sizes and offsets (LFS).

These few don't really vary by system, they always correspond

to one of the other defined types.

type X__mode_t

type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks.
type X__nlink_t = uint64 /* types.h:151:27 */ // Type of file link counts.

type X__off64_t

type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS).

type X__off_t

type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets.

type X__pid_t

type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications.

type X__pthread_cleanup_frame

type X__pthread_cleanup_frame = struct {
	F__cancel_routine uintptr
	F__cancel_arg     uintptr
	F__do_it          int32
	F__cancel_type    int32

} /* pthread.h:516:1 */

Structure to hold the cleanup handler information.

type X__pthread_cond_s

type X__pthread_cond_s = struct {
	F__0            struct{ F__wseq uint64 }
	F__8            struct{ F__g1_start uint64 }
	F__g_refs       [2]uint32
	F__g_size       [2]uint32
	F__g1_orig_size uint32
	F__wrefs        uint32
	F__g_signals    [2]uint32

} /* thread-shared-types.h:92:1 */

type X__pthread_internal_list

type X__pthread_internal_list = struct {
	F__prev uintptr
	F__next uintptr

} /* thread-shared-types.h:49:9 */

type X__pthread_internal_slist

type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */

type X__pthread_list_t

type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */

type X__pthread_mutex_s

type X__pthread_mutex_s = struct {
	F__lock    int32
	F__count   uint32
	F__owner   int32
	F__nusers  uint32
	F__kind    int32
	F__spins   int16
	F__elision int16
	F__list    X__pthread_list_t

} /* struct_mutex.h:22:1 */

type X__pthread_rwlock_arch_t

type X__pthread_rwlock_arch_t = struct {
	F__readers       uint32
	F__writers       uint32
	F__wrphase_futex uint32
	F__writers_futex uint32
	F__pad3          uint32
	F__pad4          uint32
	F__cur_writer    int32
	F__shared        int32
	F__rwelision     int8
	F__pad1          [7]uint8
	F__pad2          uint64
	F__flags         uint32
	F__ccgo_pad1     [4]byte

} /* struct_rwlock.h:23:1 */

type X__pthread_slist_t

type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */

type X__pthread_unwind_buf_t

type X__pthread_unwind_buf_t = struct {
	F__cancel_jmp_buf [1]struct {
		F__cancel_jmp_buf X__jmp_buf
		F__mask_was_saved int32
		F__ccgo_pad1      [4]byte
	}
	F__pad [4]uintptr

} /* pthread.h:507:3 */

type X__quad_t

type X__quad_t = int64 /* types.h:63:18 */

quad_t is also 64 bits.

type X__rlim64_t

type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS).

type X__rlim_t

type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement.

type X__sig_atomic_t

type X__sig_atomic_t = int32 /* types.h:214:13 */

C99: An integer type that can be accessed as an atomic entity,

even in the presence of asynchronous interrupts.
It is not currently necessary for this to be machine-specific.

type X__socklen_t

type X__socklen_t = uint32 /* types.h:209:23 */

Duplicate info from sys/socket.h.

type X__ssize_t

type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error.

type X__suseconds_t

type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds.

type X__syscall_slong_t

type X__syscall_slong_t = int64 /* types.h:196:33 */

Signed long type used in system calls.

type X__syscall_ulong_t

type X__syscall_ulong_t = uint64 /* types.h:198:33 */

Unsigned long type used in system calls.

type X__time_t

type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch.

type X__timer_t

type X__timer_t = uintptr /* types.h:171:12 */

Timer ID returned by `timer_create'.

type X__u_char

type X__u_char = uint8 /* types.h:31:23 */

Convenience types.

type X__u_int

type X__u_int = uint32 /* types.h:33:22 */

type X__u_long

type X__u_long = uint64 /* types.h:34:27 */

type X__u_quad_t

type X__u_quad_t = uint64 /* types.h:64:27 */

type X__u_short

type X__u_short = uint16 /* types.h:32:28 */

type X__uid_t

type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications.

type X__uint128_t

type X__uint128_t = struct {
	Flo uint64
	Fhi uint64

} /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128

type X__uint16_t

type X__uint16_t = uint16 /* types.h:40:28 */

type X__uint32_t

type X__uint32_t = uint32 /* types.h:42:22 */

type X__uint64_t

type X__uint64_t = uint64 /* types.h:45:27 */

type X__uint8_t

type X__uint8_t = uint8 /* types.h:38:23 */

type X__uint_least16_t

type X__uint_least16_t = X__uint16_t /* types.h:55:20 */

type X__uint_least32_t

type X__uint_least32_t = X__uint32_t /* types.h:57:20 */

type X__uint_least64_t

type X__uint_least64_t = X__uint64_t /* types.h:59:20 */

type X__uint_least8_t

type X__uint_least8_t = X__uint8_t /* types.h:53:19 */

type X__uintmax_t

type X__uintmax_t = uint64 /* types.h:73:27 */

type X__useconds_t

type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds.

type X_pthread_cleanup_buffer

type X_pthread_cleanup_buffer = struct {
	F__routine    uintptr
	F__arg        uintptr
	F__canceltype int32
	F__ccgo_pad1  [4]byte
	F__prev       uintptr

} /* pthread.h:155:1 */

Cleanup buffers

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL