2 +----------------------------------------------------------------------+
4 +----------------------------------------------------------------------+
5 | Copyright (c) 2008 The PHP Group |
6 +----------------------------------------------------------------------+
7 | This source file is subject to version 3.01 of the PHP license, |
8 | that is bundled with this package in the file LICENSE, and is |
9 | available through the world-wide-web at the following url: |
10 | http://www.php.net/license/3_01.txt |
11 | If you did not receive a copy of the PHP license and are unable to |
12 | obtain it through the world-wide-web, please send a note to |
13 | license@php.net so we can mail you a copy immediately. |
14 +----------------------------------------------------------------------+
15 | Authors: Brian Shire <shire@php.net> |
16 +----------------------------------------------------------------------+
20 /* $Id: apc_spin.c,v 3.1.2.1 2008/05/11 18:57:00 rasmus Exp $ */
26 slock_t *apc_slock_create(slock_t *lock)
31 void apc_slock_destroy(slock_t *lock)
36 void apc_slock_lock(slock_t *lock)
41 void apc_slock_unlock(slock_t *lock)
46 zend_bool apc_slock_nonblocking_lock(slock_t *lock)
48 /* Technically we aren't supposed to call this directly, but the original
49 * code provides no method for absolute non-blocking locks, so we'll call into
50 * the TAS (test and set) functionality directly
52 return !(TAS(lock)); /* if TAS returns 0 we obtained the lock, otherwise we failed */
63 * vim600: expandtab sw=4 ts=4 sts=4 fdm=marker
64 * vim<600: expandtab sw=4 ts=4 sts=4