f = fopen("tmp/locks/$key", "w"); } } // Get a shared lock function get($nonblock = false) { global $config; if ($config['lock']['enabled'] == 'fs') { $wouldblock = false; flock($this->f, LOCK_SH | ($nonblock ? LOCK_NB : 0), $wouldblock); if ($nonblock && $wouldblock) return false; } return $this; } // Get an exclusive lock function get_ex($nonblock = false) { global $config; if ($config['lock']['enabled'] == 'fs') { $wouldblock = false; flock($this->f, LOCK_EX | ($nonblock ? LOCK_NB : 0), $wouldblock); if ($nonblock && $wouldblock) return false; } return $this; } // Free a lock function free() { global $config; if ($config['lock']['enabled'] == 'fs') { flock($this->f, LOCK_UN); } return $this; } }