diff --git a/rtl/bsd/sysosh.inc b/rtl/bsd/sysosh.inc index c8df78b255..4bb5fd284d 100644 --- a/rtl/bsd/sysosh.inc +++ b/rtl/bsd/sysosh.inc @@ -19,7 +19,8 @@ type { fd are int in C also for 64bit targets (x86_64) } THandle = Longint; - TThreadID = pointer; + TThreadRec = record end; + TThreadID = ^TThreadRec; { pthread_mutex_t } PRTLCriticalSection = ^TRTLCriticalSection; diff --git a/rtl/freebsd/ptypes.inc b/rtl/freebsd/ptypes.inc index 29e5864592..d67e42ee30 100644 --- a/rtl/freebsd/ptypes.inc +++ b/rtl/freebsd/ptypes.inc @@ -117,15 +117,24 @@ type ptimespec= ^timespec; Ttimespec= timespec; - pthread_t = pointer; - pthread_attr_t = pointer; + pthread_t_rec = record end; + pthread_attr_t_rec = record end; +// pthread_mutex_t_rec = record end; + pthread_mutexattr_t_rec = record end; + pthread_cond_t_rec = record end; + pthread_condattr_t_rec = record end; + pthread_rwlock_t_rec = record end; + pthread_rwlockattr_t_rec = record end; + + pthread_t = ^pthread_t_rec; + pthread_attr_t = ^pthread_attr_t_rec; pthread_mutex_t = {$i pmutext.inc} - pthread_mutexattr_t = pointer; - pthread_cond_t = pointer; - pthread_condattr_t = pointer; + pthread_mutexattr_t = ^pthread_mutexattr_t_rec; + pthread_cond_t = ^pthread_cond_t_rec; + pthread_condattr_t = ^pthread_condattr_t_rec; pthread_key_t = cint; - pthread_rwlock_t = pointer; - pthread_rwlockattr_t = pointer; + pthread_rwlock_t = ^pthread_rwlock_t_rec; + pthread_rwlockattr_t = ^pthread_rwlock_t_rec; sem_t = pointer; rlim_t = int64;