Thread Rating:
  • 431 Vote(s) - 2.75 Average
  • 1
  • 2
  • 3
  • 4
  • 5
SOAP非同期通信のキャンセルについて
08-23-2011, 09:24 PM, (This post was last modified: 08-23-2011, 09:27 PM by onyo.)
#5
RE: SOAP非同期通信のキャンセルについて
COM.CURL.WSDK.1.0 で非同期通信キャンセルを実装するような
方は今現在いないでしょうが・・・
最新の WSDK+UTIL-V7_090925 でも同じ実装でしたので、
結果を報告までに。

COM.CURL.WSDK.SOAP
SOAPHTTP.scurl 内
SOAPHTTPRPCPostAsyncWorker の cancel メソッド が

Code:
{method public open {cancel}:bool
    {if not self._done? then
        {self.close}
        {if-non-null async-worker = self.async-worker then
            set self.async-worker = null
            let ret:bool = {async-worker.cancel}
            {if ret then
                {self.event-target.enqueue-event
                    {new SOAPHTTPRPCPostAsyncEvent,
                        null, true, null, null, null, null, null
                    }
                }
                set self._done? = true
            }
            {return ret}
        }
    }
    {return false}
}


となっていましたが、
{self.close} の位置が、{async-worker.cancel}
の前であるため、イベント内でRead中に落ちるようです。

Code:
{method public open {cancel}:bool
    {if not self._done? then
        {if-non-null async-worker = self.async-worker then
            set self.async-worker = null
            let ret:bool = {async-worker.cancel}
            {self.close}
            {if ret then
                {self.event-target.enqueue-event
                    {new SOAPHTTPRPCPostAsyncEvent,
                        null, true, null, null, null, null, null
                    }
                }
                set self._done? = true
            }
            {return ret}
        }
        {self.close}
    }
    {return false}
}


と改修してみると、落ちなくなりました。
ご回答くれた皆様有難う御座いました。
Reply


Messages In This Thread
RE: SOAP非同期通信のキャンセルについて - by onyo - 08-23-2011, 09:24 PM
Forum Jump:


Users browsing this thread:
1 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('225')