From 0b7233416fd5e2ef879170f5a49ff936ff27deef Mon Sep 17 00:00:00 2001 From: "Matteo Nastasi (mop)" Date: Sat, 6 Jun 2009 13:30:36 +0000 Subject: [PATCH] Poll class added --- web/Obj/brisk.phh | 60 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 58 insertions(+), 2 deletions(-) diff --git a/web/Obj/brisk.phh b/web/Obj/brisk.phh index 56dedce..f9de838 100644 --- a/web/Obj/brisk.phh +++ b/web/Obj/brisk.phh @@ -160,6 +160,33 @@ $G_room_about= '
Copyright 2006-2008 Matteo Nastasi (aka mop)

'; +function csplitter($in, $sep) +{ + $st = 0; + $id = 0; + $out = array(); + + for ($i = 0 ; $i < strlen($in) ; $i++) { + if ($st == 0) { + if ($in{$i} == '\\') + $st = 1; + else if ($in{$i} == $sep) { + $id++; + } + else { + $out[$id] .= $in{$i}; + } + } + else if ($st == 1) { + $out[$id] .= $in{$i}; + $st = 0; + } + } + + return ($out); +} + + function xcape($s) { $from = array ( '\\', '@', '|' ); @@ -2460,7 +2487,7 @@ class Warrant { return (FALSE); } if (sem_acquire($res)) { - log_lock("LOCK room"); + log_lock("LOCK warrant"); return ($res); } else @@ -2471,11 +2498,40 @@ class Warrant { { GLOBAL $sess; - log_lock("UNLOCK room"); + log_lock("UNLOCK warrant"); return (sem_release($res)); } +} +class Poll { + function lock_data() + { + GLOBAL $sess; + + if (($tok = @ftok(FTOK_PATH."/poll", "B")) == -1) { + return (FALSE); + } + // echo "FTOK ".$tok."
"; + if (($res = sem_get($tok)) == FALSE) { + return (FALSE); + } + if (sem_acquire($res)) { + log_lock("LOCK poll"); + return ($res); + } + else + return (FALSE); + } + function unlock_data($res) + { + GLOBAL $sess; + + log_lock("UNLOCK poll"); + + return (sem_release($res)); + } } + ?> -- 2.17.1