diff --git a/README.md b/README.md new file mode 100644 index 0000000..b56b413 --- /dev/null +++ b/README.md @@ -0,0 +1,118 @@ +# PHP atomic counter extension + +Simple SysV semaphore counter. It will be automatically undone +when the process terminates. + +## Supported platform +* Linux (kernel > 2.1) (not Solaris) + +## Install + +``` +phpize +./configure +make +make install +``` + +Add `extension=counterlock.so` to your php.ini configuration + +### Install on CentOS and RHEL +``` +/opt/remi/php71/root/usr/bin/phpize +./configure --with-php-config=/opt/remi/php71/root/usr/bin/php-config +make +make install +echo "extension=counterlock.so" > /etc/opt/remi/php71/php.d/20-counerlock.ini +``` + +## Run test + +``` +phpize +./configure +make +make test +``` + +## Example Usage + +```php + + * The semaphore permissions. Actually this value is + * set only if the process finds it is the only process currently + * attached to the semaphore. + *
+ * + * @return resource a positive counter identifier on success, or FALSE on + * error. + */ +function counter_create ($key, $perm = 0666) {} + +/** + * Increment a counter + * @param resource $resource+ * resource is a resource, obtained from counter_create. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function counter_increment ($resource) {} + +/** + * Increment a counter + * @param resource $resource+ * A resource handle as returned by + * counter_create. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function counter_decrement ($resource) {} + +/** + * Get counter value. + * + * @param resource $resource+ * A resource handle as returned by + * counter_create. + *
+ * @return integer|false FALSE on failure. + */ +function counter_value ($resource) {} + +/** + * Remove a System V semaphore for counter + * @param resource $resource+ * A semaphore resource identifier as returned + * by sem_get. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function counter_remove ($resource) {} + +// End of counterlock. + +``` diff --git a/counterlock.php b/counterlock.php index d7e2cae..83d45c5 100644 --- a/counterlock.php +++ b/counterlock.php @@ -1,21 +1,61 @@ "; - -if(!extension_loaded('counterlock')) { - dl('counterlock.' . PHP_SHLIB_SUFFIX); -} -$module = 'counterlock'; -$functions = get_extension_funcs($module); -echo "Functions available in the test extension:$br\n"; -foreach($functions as $func) { - echo $func."$br\n"; -} -echo "$br\n"; -$function = 'confirm_' . $module . '_compiled'; -if (extension_loaded($module)) { - $str = $function($module); -} else { - $str = "Module $module is not compiled into PHP"; -} -echo "$str\n"; -?> + +// Start of counterlock. + +/** + * Get or create a semaphore counter id + * + * @param int $key + * @param int $perm [optional]+ * The semaphore permissions. Actually this value is + * set only if the process finds it is the only process currently + * attached to the semaphore. + *
+ * + * @return resource a positive counter identifier on success, or FALSE on + * error. + */ +function counter_create ($key, $perm = 0666) {} + +/** + * Increment a counter + * @param resource $resource+ * resource is a resource, obtained from counter_create. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function counter_increment ($resource) {} + +/** + * Increment a counter + * @param resource $resource+ * A resource handle as returned by + * counter_create. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function counter_decrement ($resource) {} + +/** + * Get counter value. + * + * @param resource $resource+ * A resource handle as returned by + * counter_create. + *
+ * @return integer|false FALSE on failure. + */ +function counter_value ($resource) {} + +/** + * Remove a System V semaphore for counter + * @param resource $resource+ * A semaphore resource identifier as returned + * by sem_get. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function counter_remove ($resource) {} + +// End of counterlock. + diff --git a/example.php b/example.php deleted file mode 100644 index 8b6ff39..0000000 --- a/example.php +++ /dev/null @@ -1,7 +0,0 @@ -