Skip to content

Commit

Permalink
Attempt to clean up the thread ID mess in platform_unix ...
Browse files Browse the repository at this point in the history
  • Loading branch information
icculus committed Sep 6, 2009
1 parent 5a26df8 commit cef8847
Show file tree
Hide file tree
Showing 8 changed files with 19 additions and 33 deletions.
4 changes: 2 additions & 2 deletions src/physfs.c
Expand Up @@ -43,7 +43,7 @@ typedef struct __PHYSFS_FILEHANDLE__

typedef struct __PHYSFS_ERRMSGTYPE__
{
PHYSFS_uint64 tid;
void *tid;
int errorAvailable;
char errorString[80];
struct __PHYSFS_ERRMSGTYPE__ *next;
Expand Down Expand Up @@ -268,7 +268,7 @@ void __PHYSFS_sort(void *entries, PHYSFS_uint32 max,
static ErrMsg *findErrorForCurrentThread(void)
{
ErrMsg *i;
PHYSFS_uint64 tid;
void *tid;

if (errorLock != NULL)
__PHYSFS_platformGrabMutex(errorLock);
Expand Down
8 changes: 4 additions & 4 deletions src/physfs_internal.h
Expand Up @@ -1307,12 +1307,12 @@ char *__PHYSFS_platformGetUserName(void);
char *__PHYSFS_platformGetUserDir(void);

/*
* Return a number that uniquely identifies the current thread.
* On a platform without threading, (1) will suffice. These numbers are
* Return a pointer that uniquely identifies the current thread.
* On a platform without threading, (0x1) will suffice. These numbers are
* arbitrary; the only requirement is that no two threads have the same
* number.
* pointer.
*/
PHYSFS_uint64 __PHYSFS_platformGetThreadID(void);
void *__PHYSFS_platformGetThreadID(void);

/*
* Return non-zero if filename (in platform-dependent notation) exists.
Expand Down
4 changes: 2 additions & 2 deletions src/platform_beos.cpp
Expand Up @@ -194,9 +194,9 @@ char *__PHYSFS_platformCalcBaseDir(const char *argv0)
} /* __PHYSFS_platformCalcBaseDir */


PHYSFS_uint64 __PHYSFS_platformGetThreadID(void)
void *__PHYSFS_platformGetThreadID(void)
{
return((PHYSFS_uint64) find_thread(NULL));
return((void *) find_thread(NULL));
} /* __PHYSFS_platformGetThreadID */


Expand Down
4 changes: 2 additions & 2 deletions src/platform_macosx.c
Expand Up @@ -353,9 +353,9 @@ int __PHYSFS_platformSetDefaultAllocator(PHYSFS_Allocator *a)
} /* __PHYSFS_platformSetDefaultAllocator */


PHYSFS_uint64 __PHYSFS_platformGetThreadID(void)
void *__PHYSFS_platformGetThreadID(void)
{
return( (PHYSFS_uint64) ((size_t) MPCurrentTaskID()) );
return( (void *) ((size_t) MPCurrentTaskID()) );
} /* __PHYSFS_platformGetThreadID */


Expand Down
4 changes: 2 additions & 2 deletions src/platform_os2.c
Expand Up @@ -658,7 +658,7 @@ PHYSFS_sint64 __PHYSFS_platformGetLastModTime(const char *_fname)
} /* __PHYSFS_platformGetLastModTime */


PHYSFS_uint64 __PHYSFS_platformGetThreadID(void)
void *__PHYSFS_platformGetThreadID(void)
{
PTIB ptib;
PPIB ppib;
Expand All @@ -668,7 +668,7 @@ PHYSFS_uint64 __PHYSFS_platformGetThreadID(void)
* default value (zero might as well do) if it does.
*/
BAIL_IF_MACRO(os2err(DosGetInfoBlocks(&ptib, &ppib)) != NO_ERROR, 0, 0);
return((PHYSFS_uint64) ptib->tib_ordinal);
return((void *) ptib->tib_ordinal);
} /* __PHYSFS_platformGetThreadID */


Expand Down
4 changes: 2 additions & 2 deletions src/platform_pocketpc.c
Expand Up @@ -161,9 +161,9 @@ char *__PHYSFS_platformGetUserDir(void)
} /* __PHYSFS_platformGetUserDir */


PHYSFS_uint64 __PHYSFS_platformGetThreadID(void)
void *__PHYSFS_platformGetThreadID(void)
{
return(1); /* single threaded. */
return((void *)1); /* single threaded. */ /* !!! FIXME: is this true? */
} /* __PHYSFS_platformGetThreadID */


Expand Down
20 changes: 3 additions & 17 deletions src/platform_unix.c
Expand Up @@ -347,7 +347,7 @@ int __PHYSFS_platformSetDefaultAllocator(PHYSFS_Allocator *a)

#if (defined PHYSFS_NO_PTHREADS_SUPPORT)

PHYSFS_uint64 __PHYSFS_platformGetThreadID(void) { return(0x0001); }
void *__PHYSFS_platformGetThreadID(void) { return((void *) 0x0001); }
void *__PHYSFS_platformCreateMutex(void) { return((void *) 0x0001); }
void __PHYSFS_platformDestroyMutex(void *mutex) {}
int __PHYSFS_platformGrabMutex(void *mutex) { return(1); }
Expand All @@ -362,24 +362,10 @@ typedef struct
PHYSFS_uint32 count;
} PthreadMutex;

/* Just in case; this is a panic value. */
#if ((!defined SIZEOF_INT) || (SIZEOF_INT <= 0))
# define SIZEOF_INT 4
#endif

#if (SIZEOF_INT == 4)
# define PHTREAD_TO_UI64(thr) ( (PHYSFS_uint64) ((PHYSFS_uint32) (thr)) )
#elif (SIZEOF_INT == 2)
# define PHTREAD_TO_UI64(thr) ( (PHYSFS_uint64) ((PHYSFS_uint16) (thr)) )
#elif (SIZEOF_INT == 1)
# define PHTREAD_TO_UI64(thr) ( (PHYSFS_uint64) ((PHYSFS_uint8) (thr)) )
#else
# define PHTREAD_TO_UI64(thr) ((PHYSFS_uint64) (thr))
#endif

PHYSFS_uint64 __PHYSFS_platformGetThreadID(void)
void *__PHYSFS_platformGetThreadID(void)
{
return(PHTREAD_TO_UI64(pthread_self()));
return( (void *) ((size_t) pthread_self()) );
} /* __PHYSFS_platformGetThreadID */


Expand Down
4 changes: 2 additions & 2 deletions src/platform_windows.c
Expand Up @@ -559,9 +559,9 @@ char *__PHYSFS_platformGetUserDir(void)
} /* __PHYSFS_platformGetUserDir */


PHYSFS_uint64 __PHYSFS_platformGetThreadID(void)
void *__PHYSFS_platformGetThreadID(void)
{
return((PHYSFS_uint64) GetCurrentThreadId());
return( (void *) ((size_t) GetCurrentThreadId()) );
} /* __PHYSFS_platformGetThreadID */


Expand Down

0 comments on commit cef8847

Please sign in to comment.