> Looking at my code, I might have initialized my semaphore incorrectly. > > The Windows portion works, and I tried to port it to Linux as follows... > > procedure TtiPool.CreatePoolSemaphore; > begin > {$IFDEF MSWINDOWS} > if FSemaphore <> 0 then > CloseHandle( FSemaphore ) ; > FSemaphore := CreateSemaphore( nil, FiMaxPoolSize, FiMaxPoolSize, nil ); > {$ENDIF MSWINDOWS} > {$IFDEF LINUX} > sem_destroy( FSemaphore ); > > if sem_init(FSemaphore, 0, 1) <> 0 then > raise Exception.Create('Failed to create the semaphore'); > {$ENDIF LINUX} > end;
Looking at unit syncobjs might save you some ifdefs and trouble. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal