|
@@ -21,21 +21,32 @@ class StatesHelper
|
|
|
$states['tags'] = true;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
static public function fetch_state($tag)
|
|
|
{
|
|
|
global $gMessageStates;
|
|
|
global $gMessageLock;
|
|
|
|
|
|
+ $trdid = Thread::getCurrentThreadId();
|
|
|
+ Log::record("thread id = {$trdid}",Log::INFO);
|
|
|
+
|
|
|
+ $finded = false;
|
|
|
Mutex::lock($gMessageLock);
|
|
|
- if(is_array($gMessageStates) && array_key_exists($tag,$gMessageStates))
|
|
|
+ foreach ($gMessageStates as $key => $val)
|
|
|
{
|
|
|
- $state = $gMessageStates[$tag];
|
|
|
- if($state == true) {
|
|
|
- $gMessageLock[$tag] = false;
|
|
|
+ if($key == $tag)
|
|
|
+ {
|
|
|
+ $finded = true;
|
|
|
+ $state = $gMessageStates[$tag];
|
|
|
+ if($state == true) {
|
|
|
+ $gMessageStates[$tag] = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- else {
|
|
|
- $gMessageLock[$tag] = false;
|
|
|
+
|
|
|
+ if($finded == false) {
|
|
|
+ $gMessageStates[$tag] = false;
|
|
|
$state = true;
|
|
|
}
|
|
|
Mutex::unlock($gMessageLock);
|
|
@@ -56,7 +67,7 @@ class StatesHelper
|
|
|
|
|
|
function handler_redis($redis, $chan, $msg)
|
|
|
{
|
|
|
- Log::record("message: {$chan} -- {$msg}",Log::DEBUG);
|
|
|
+ Log::record("message: {$chan} -- {$msg}",Log::INFO);
|
|
|
$cur_trd = Thread::getCurrentThread();
|
|
|
$cur_trd->dispatch($chan,$msg);
|
|
|
}
|