Re: [Mingw-w64-public] Shared semaphores

2013-11-07 Thread Edscott Wilson
No need to be sorry. Great stuff, this MinGW-w64. As soon as I cook up some wrapper code and test it in libtubo, I'll post it for your review. 2013/11/7 LRN > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > > On 07.11.2013 22:34, LRN wrote: > > On 07.11.2013 22:00, Edscott Wilson wrote: >

Re: [Mingw-w64-public] Shared semaphores

2013-11-07 Thread LRN
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 07.11.2013 22:34, LRN wrote: > On 07.11.2013 22:00, Edscott Wilson wrote: >> Ok. So I now I ran more tests. To start with, I replaced the >> unnamed process-shared semaphore for a more compatible named >> semaphore, which by definition is process-

Re: [Mingw-w64-public] Shared semaphores

2013-11-07 Thread LRN
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 07.11.2013 22:00, Edscott Wilson wrote: > Ok. So I now I ran more tests. To start with, I replaced the > unnamed process-shared semaphore for a more compatible named > semaphore, which by definition is process-shared. The code works > fine in Linux

Re: [Mingw-w64-public] Shared semaphores

2013-11-07 Thread Edscott Wilson
Ok. So I now I ran more tests. To start with, I replaced the unnamed process-shared semaphore for a more compatible named semaphore, which by definition is process-shared. The code works fine in Linux and FreeBSD. But in MinGW-w64, no such luck. I tried the toolchain in *mingw-w64-v3.0.0.tar.bz2,

Re: [Mingw-w64-public] Shared semaphores

2013-11-06 Thread Ruben Van Boxem
2013/11/6 niXman > Ruben Van Boxem писал 2013-11-05 23:57: > > > You can get MinGW-w64 from here: > > > http://sourceforge.net/projects/mingwbuilds/files/mingw-builds-install/mingw-builds-install.exe > > > > Or seperate downloads via here: > > http://mingw-w64.sourceforge.net/download.php#mingw-b

Re: [Mingw-w64-public] Shared semaphores

2013-11-06 Thread niXman
Ruben Van Boxem писал 2013-11-05 23:57: > You can get MinGW-w64 from here: > http://sourceforge.net/projects/mingwbuilds/files/mingw-builds-install/mingw-builds-install.exe > > Or seperate downloads via here: > http://mingw-w64.sourceforge.net/download.php#mingw-builds Previously I reported abou

Re: [Mingw-w64-public] Shared semaphores

2013-11-05 Thread Edscott Wilson
2013/11/5 Ruben Van Boxem > > > If you have pthreadGC2.dll, you are not using winpthreads, but > pthreads-win32, an older and completely different project. What toolchain > are you using? I don't think you're using MinGW-w64, but the older and less > complete MinGW(.org). > > You can get MinGW-w6

Re: [Mingw-w64-public] Shared semaphores

2013-11-05 Thread Ruben Van Boxem
2013/11/5 Edscott Wilson > > > > 2013/11/4 LRN > >> What CreateSemaphore() uses internally is anyone's guess. It might be >> CreateFileMapping(), it might be not. If it goes into kernel side, >> then it may as well use something more efficient there. >> libwinpthreads uses CreateSemaphore() inte

Re: [Mingw-w64-public] Shared semaphores

2013-11-05 Thread Edscott Wilson
2013/11/4 LRN > What CreateSemaphore() uses internally is anyone's guess. It might be > CreateFileMapping(), it might be not. If it goes into kernel side, > then it may as well use something more efficient there. > libwinpthreads uses CreateSemaphore() internally, so if you'd use the > semaphore

Re: [Mingw-w64-public] Shared semaphores

2013-11-04 Thread LRN
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 04.11.2013 20:19, Edscott Wilson wrote: > Well I did my testing of semaphores to release a windows version > of libtubo (http://xffm.org/libtubo.html) and these are my two > cents. > > 1- Shared semaphores (shared between heavy weight processes). I

Re: [Mingw-w64-public] Shared semaphores

2013-11-04 Thread Edscott Wilson
2013/11/4 Kai Tietz > > > Pthread_ stuff applies only to threads, created with pthread_create. > While > > semaphores may apply to independent processes. As far as I recall, > > semaphores require interaction with the kernel, while pthread stuff is > > contained within the running program. Thus,

Re: [Mingw-w64-public] Shared semaphores

2013-11-04 Thread Kai Tietz
Ah, right. I missed that we provide here semaphore-API, too. I wouldn't call that API posix ... but yes, this is a bare-layer to be used carefully ... we implement in winpthread nearly all more complex stuff based on the sem-API. 2013/11/4 Edscott Wilson : > As I understand it, all it takes to g

Re: [Mingw-w64-public] Shared semaphores

2013-11-04 Thread Edscott Wilson
As I understand it, all it takes to get a POSIX semaphore in windows is to include and link with -lpthread. Windows semaphores are defined in . Since POSIX semaphores are in libpthread, they would be "pthread" semaphores. Nonetheless, I think they have a different flavor. The bulk of pthread func

Re: [Mingw-w64-public] Shared semaphores

2013-11-04 Thread Kai Tietz
Hi Edscott, thanks for testing this. I just have one small question about one paragraph. 2013/11/4 Edscott Wilson : > 2- Local semaphores (shared only between threads). Posix semaphores in Mingw > seem to be subject to race conditions not present in Linux or FreeBSD. When > I tried to use them i

Re: [Mingw-w64-public] Shared semaphores

2013-11-04 Thread Edscott Wilson
Well I did my testing of semaphores to release a windows version of libtubo (http://xffm.org/libtubo.html) and these are my two cents. 1- Shared semaphores (shared between heavy weight processes). In Linux, a shared semaphore must be placed in shared memory. This is easy, since the shm_ family of

Re: [Mingw-w64-public] Shared semaphores

2013-10-21 Thread Edscott Wilson
2013/10/21 LRN > W32 semaphores[1] are shared by default. > mingw-w64 winpthreads use these semaphores internally when pshared is > PTHREAD_PROCESS_SHARED, so yes, this is supported (judging by the code; > you will have to test it to see if it actually works). > > Will do the testint. I'll let yo

Re: [Mingw-w64-public] Shared semaphores

2013-10-21 Thread LRN
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 21.10.2013 20:32, Edscott Wilson wrote: > In Linux, you can get a piece of shared memory, put a posix semaphore in > there, and use it amongst independent processes. This is done by setting > the second parameter of sem_init() to 1. In FreeBSD this

[Mingw-w64-public] Shared semaphores

2013-10-21 Thread Edscott Wilson
In Linux, you can get a piece of shared memory, put a posix semaphore in there, and use it amongst independent processes. This is done by setting the second parameter of sem_init() to 1. In FreeBSD this functionality is not supported (at least the last time I looked). Does anybody on the list know