Questions on sem_* and shm_* functions

From: Date: Sat, 17 Jun 2000 14:34:07 +0000
Subject: Questions on sem_* and shm_* functions
Groups: php.dev php.version4 
Request: Send a blank email to php-version4+get-16310@lists.php.net to get a copy of this message
Hi there, I'm currently working on something I called "phpWin32SxM - A Fake Implementation of PHP's Semaphore (SEM) and Shared Memory Functions (SHM) for the Win32 Platform". I use SQL tables to emulate "Shared Memory" and Semaphores on Win32-based machines. I'm mostly finished with the shm_* functions. This means, that the functions do what they're expected to do, for instance the following code works just fine on my Win32 installation of PHP 4.0.1-dev: <?php include "phpWin32SxM.php"; $test = array( "test", "it works" ); $shm = shm_attach( 123 ); shm_put_var( $shm, "test", $test ); $test2 = shm_get_var( $shm, "test" ); shm_remove_var( $shm, "test" ); shm_remove( $shm ); print $test2[1]; ?> The output is, as expected, "it works". But I have some questions about the implementation of the original sem_* / shm_* functions that need to be answered in order to make my implementations (more) compatible: - What is the perm argument of sem_get() and shm_attach() for? Is this, too, needed to be emulated? - What does shm_attach() return if for some reason the creation or opening of a shared memory segment fails? Although it is unlikely that this may happen with nmy fake shared memory implementation, as the variables are held in a SQL table instead of RAM. - Is it true that shm_detach() only removes the shm_identifier for a shared memory segment from some sort of list but doesn't remove the stored variables of that segement? - How do the functions shm_get_var() and shm_remove_var() behave if the given shared memory segment and / or variable doesn't exist? - How do the functions shm_detach() and shm_remove() behave if the given shared memory segment doesn't exist? - How do the functions sem_acquire() and sem_release() behave if the given semaphore doesn't exist? -- Homepage : http://gravedancer.rc5.de \ eMail: sebastian.bergmann@web.de PHP-Stand auf Europas größter Linux-Messe: 'Linux-Tag' ! weitere Infos @ http://www.dynamic-webpages.de/

« previous php.version4 (#16310) next »