public inbox for pthreads-win32@sourceware.org
 help / color / mirror / Atom feed
* Patch of current cvs for WinCE
@ 2006-11-28 16:22 Marcel Ruff
  2006-11-28 16:27 ` Marcel Ruff
  0 siblings, 1 reply; 7+ messages in thread
From: Marcel Ruff @ 2006-11-28 16:22 UTC (permalink / raw)
  To: pthreads-win32

Hi,

with some minor changes the pthreads CVS snapshot from
today (2006-11-28 PTW32_VERSION 2,8,0,0) compiles with

  Visual C++ 8.0.5 2005 (on a XP)

for the target

  Windows CE 4.2, Smartphone 2003 with ARM4 processor.

My multi threaded application seem to run fine, but
it keeps getting strange return codes for

  pthread_cond_destroy()
  pthread_mutex_destroy()

those calls return 16 (which is EBUSY) in need_errno.h.
I ignore it and my applications continues as expected.

Most probably this (my) hack is the reason:

What do i have to return in pthread_cancel.c instead of FpExc??
43a44,47
 > #if defined(WINCE)
 > #define PTW32_PROGCTR(Context)  ((Context).FpExc)
 > #endif
(Context is defined in my winnt.h)


What is the role of process.h (as i have disabled it, see patch below)?

In errno.c there are pthread_self () returns pthread_t
which is sometimes a pointer on a big struct, whereas in
my case it ended up to
typedef struct {
    void * p;          /* Pointer to actual object */
    unsigned int x;    /* Extra information - reuse count etc */
} ptw32_handle_t;



How can i track this down?

thank you
Marcel




====== the patch =======
Index: create.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/create.c,v
retrieving revision 1.63
diff -r1.63 create.c
41c41,43
< #include <process.h>
---
 > #  ifndef WINCE
 > #    include <process.h>
 > #  endif
Index: errno.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/errno.c,v
retrieving revision 1.13
diff -r1.13 errno.c
76a77,90
 > # ifdef WINCE
 >   if ((self = pthread_self ()).p == NULL)
 >     {
 >       /*
 >        * Yikes! unable to allocate a thread!
 >        * Throw an exception? return an error?
 >        */
 >       result = &reallyBad;
 >     }
 >   else
 >     {
 >         result = 0; /* &(self.x) Which errno is appropriate? */
 >     }
 > # else
88a103
 > # endif
Index: exit.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/exit.c,v
retrieving revision 1.40
diff -r1.40 exit.c
41c41,43
< #   include <process.h>
---
 > #   ifndef WINCE
 > #      include <process.h>
 > #   endif
Index: implement.h
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/implement.h,v
retrieving revision 1.117
diff -r1.117 implement.h
661c661,663
< #   include <process.h>
---
 > #    ifndef WINCE
 > #        include <process.h>
 > #    endif
Index: mutex.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/mutex.c,v
retrieving revision 1.63
diff -r1.63 mutex.c
38c38,40
< #   include <process.h>
---
 > #   ifndef WINCE
 > #      include <process.h>
 > #   endif
Index: pthread.h
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/pthread.h,v
retrieving revision 1.135
diff -r1.135 pthread.h
1215c1215,1217
<      PTW32_DLLPORT int * PTW32_CDECL _errno( void );
---
 > #     ifndef WINCE
 >          PTW32_DLLPORT int * PTW32_CDECL _errno( void );
 > #     endif
Index: pthread_cancel.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/pthread_cancel.c,v
retrieving revision 1.10
diff -r1.10 pthread_cancel.c
43a44,47
 > #if defined(WINCE)
 > #define PTW32_PROGCTR(Context)  ((Context).FpExc)
 > #endif
 >
Index: pthread_detach.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/pthread_detach.c,v
retrieving revision 1.10
diff -r1.10 pthread_detach.c
45c45,47
< #include <signal.h>
---
 > #ifndef WINCE
 > #  include <signal.h>
 > #endif
Index: pthread_join.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/pthread_join.c,v
retrieving revision 1.11
diff -r1.11 pthread_join.c
45c45,47
< #include <signal.h>
---
 > #ifndef WINCE
 > #  include <signal.h>
 > #endif
Index: pthread_kill.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/pthread_kill.c,v
retrieving revision 1.7
diff -r1.7 pthread_kill.c
44c44,46
< #include <signal.h>
---
 > #ifndef WINCE
 > #   include <signal.h>
 > #endif
Index: pthread_rwlock_destroy.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/pthread_rwlock_destroy.c,v
retrieving revision 1.5
diff -r1.5 pthread_rwlock_destroy.c
37c37
< #include <errno.h>
---
 > /*#include <errno.h> is included by pthread.h (Marcel Ruff 2006-11-28) */
Index: pthread_rwlock_init.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/pthread_rwlock_init.c,v
retrieving revision 1.5
diff -r1.5 pthread_rwlock_init.c
37c37
< #include <errno.h>
---
 > /*#include <errno.h> is included by pthread.h (Marcel Ruff 2006-11-28) */
Index: pthread_rwlock_rdlock.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/pthread_rwlock_rdlock.c,v
retrieving revision 1.5
diff -r1.5 pthread_rwlock_rdlock.c
37c37
< #include <errno.h>
---
 > /*#include <errno.h> is included by pthread.h (Marcel Ruff 2006-11-28) */
Index: pthread_rwlock_timedrdlock.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/pthread_rwlock_timedrdlock.c,v
retrieving revision 1.5
diff -r1.5 pthread_rwlock_timedrdlock.c
37c37
< #include <errno.h>
---
 > /*#include <errno.h> is included by pthread.h (Marcel Ruff 2006-11-28) */
Index: pthread_rwlock_timedwrlock.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/pthread_rwlock_timedwrlock.c,v
retrieving revision 1.5
diff -r1.5 pthread_rwlock_timedwrlock.c
37c37
< #include <errno.h>
---
 > /*#include <errno.h> is included by pthread.h (Marcel Ruff 2006-11-28) */
Index: pthread_rwlock_tryrdlock.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/pthread_rwlock_tryrdlock.c,v
retrieving revision 1.5
diff -r1.5 pthread_rwlock_tryrdlock.c
37c37
< #include <errno.h>
---
 > /*#include <errno.h> is included by pthread.h (Marcel Ruff 2006-11-28) */
Index: pthread_rwlock_trywrlock.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/pthread_rwlock_trywrlock.c,v
retrieving revision 1.5
diff -r1.5 pthread_rwlock_trywrlock.c
37c37
< #include <errno.h>
---
 > /*#include <errno.h> is included by pthread.h (Marcel Ruff 2006-11-28) */
Index: pthread_rwlock_unlock.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/pthread_rwlock_unlock.c,v
retrieving revision 1.5
diff -r1.5 pthread_rwlock_unlock.c
37c37
< #include <errno.h>
---
 > /*#include <errno.h> is included by pthread.h (Marcel Ruff 2006-11-28) */
Index: pthread_rwlock_wrlock.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/pthread_rwlock_wrlock.c,v
retrieving revision 1.6
diff -r1.6 pthread_rwlock_wrlock.c
37c37
< #include <errno.h>
---
 > /*#include <errno.h> is included by pthread.h (Marcel Ruff 2006-11-28) */
Index: pthread_rwlockattr_destroy.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/pthread_rwlockattr_destroy.c,v
retrieving revision 1.5
diff -r1.5 pthread_rwlockattr_destroy.c
37c37
< #include <errno.h>
---
 > /*#include <errno.h> is included by pthread.h (Marcel Ruff 2006-11-28) */
Index: pthread_rwlockattr_getpshared.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/pthread_rwlockattr_getpshared.c,v
retrieving revision 1.5
diff -r1.5 pthread_rwlockattr_getpshared.c
37c37
< #include <errno.h>
---
 > /*#include <errno.h> is included by pthread.h (Marcel Ruff 2006-11-28) */
Index: pthread_rwlockattr_init.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/pthread_rwlockattr_init.c,v
retrieving revision 1.5
diff -r1.5 pthread_rwlockattr_init.c
37c37
< #include <errno.h>
---
 > /*#include <errno.h> is included by pthread.h (Marcel Ruff 2006-11-28) */
Index: pthread_rwlockattr_setpshared.c
===================================================================
RCS file: /cvs/pthreads-win32/pthreads/pthread_rwlockattr_setpshared.c,v
retrieving revision 1.5
diff -r1.5 pthread_rwlockattr_setpshared.c
37c37
< #include <errno.h>
---
 > /*#include <errno.h> is included by pthread.h (Marcel Ruff 2006-11-28) */



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2007-01-08 14:31 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-11-28 16:22 Patch of current cvs for WinCE Marcel Ruff
2006-11-28 16:27 ` Marcel Ruff
2006-11-29 11:09   ` Marcel Ruff
2006-12-05 21:14     ` semaphores and handle leaks Morgan McLeod
2006-12-05 23:12       ` Morgan McLeod
2007-01-07  2:30         ` Ross Johnson
2007-01-08 14:31           ` Morgan McLeod

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).