Change run() to serve() in all Thrift server interfaces
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664799 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/cpp/src/server/TServer.h b/lib/cpp/src/server/TServer.h
index c19302f..ddb320d 100644
--- a/lib/cpp/src/server/TServer.h
+++ b/lib/cpp/src/server/TServer.h
@@ -21,10 +21,10 @@
*
* @author Mark Slee <mcslee@facebook.com>
*/
-class TServer : public concurrency::Runnable {
+class TServer {
public:
virtual ~TServer() {}
- virtual void run() = 0;
+ virtual void serve() = 0;
protected:
TServer(shared_ptr<TProcessor> processor,
diff --git a/lib/cpp/src/server/TSimpleServer.cc b/lib/cpp/src/server/TSimpleServer.cc
index 041a52f..63b6c6b 100644
--- a/lib/cpp/src/server/TSimpleServer.cc
+++ b/lib/cpp/src/server/TSimpleServer.cc
@@ -11,7 +11,7 @@
*
* @author Mark Slee <mcslee@facebook.com>
*/
-void TSimpleServer::run() {
+void TSimpleServer::serve() {
shared_ptr<TTransport> client;
pair<shared_ptr<TTransport>,shared_ptr<TTransport> > io;
diff --git a/lib/cpp/src/server/TSimpleServer.h b/lib/cpp/src/server/TSimpleServer.h
index 973ba30..a0d22a7 100644
--- a/lib/cpp/src/server/TSimpleServer.h
+++ b/lib/cpp/src/server/TSimpleServer.h
@@ -24,7 +24,7 @@
~TSimpleServer() {}
- void run();
+ void serve();
};
diff --git a/lib/cpp/src/server/TThreadPoolServer.cc b/lib/cpp/src/server/TThreadPoolServer.cc
index 1eab53d..4285b05 100644
--- a/lib/cpp/src/server/TThreadPoolServer.cc
+++ b/lib/cpp/src/server/TThreadPoolServer.cc
@@ -55,7 +55,7 @@
TThreadPoolServer::~TThreadPoolServer() {}
-void TThreadPoolServer::run() {
+void TThreadPoolServer::serve() {
shared_ptr<TTransport> client;
pair<shared_ptr<TTransport>,shared_ptr<TTransport> > io;
diff --git a/lib/cpp/src/server/TThreadPoolServer.h b/lib/cpp/src/server/TThreadPoolServer.h
index 34b216c..b8f8b47 100644
--- a/lib/cpp/src/server/TThreadPoolServer.h
+++ b/lib/cpp/src/server/TThreadPoolServer.h
@@ -26,7 +26,7 @@
virtual ~TThreadPoolServer();
- virtual void run();
+ virtual void serve();
protected:
diff --git a/lib/php/src/transport/TSocket.php b/lib/php/src/transport/TSocket.php
index 74ef01f..5ecd874 100644
--- a/lib/php/src/transport/TSocket.php
+++ b/lib/php/src/transport/TSocket.php
@@ -165,12 +165,28 @@
stream_set_timeout($this->handle_, 0, $this->recvTimeout_*1000);
$this->sendTimeoutSet_ = FALSE;
}
- $buf = @stream_get_contents($this->handle_, $len);
- if ($buf === FALSE || strlen($buf) !== $len) {
- throw new Exception('TSocket: Could not read '.$len.' bytes from '.
- $this->host_.':'.$this->port_);
+ // This call does not obey stream_set_timeout values!
+ // $buf = @stream_get_contents($this->handle_, $len);
+
+ $pre = null;
+ while (true) {
+ $buf = @fread($this->handle_, $len);
+ if ($buf === FALSE) {
+ throw new Exception('TSocket: Could not read '.$len.' bytes from '.
+ $this->host_.':'.$this->port_);
+ } else if (($sz = strlen($buf)) < $len) {
+ $md = stream_get_meta_data($this->handle_);
+ if ($md['timed_out']) {
+ throw new Exception('TSocket: timed out reading '.$len.' bytes from '.
+ $this->host_.':'.$this->port_);
+ } else {
+ $pre .= $buf;
+ $len -= $sz;
+ }
+ } else {
+ return $pre.$buf;
+ }
}
- return $buf;
}
/**
@@ -184,7 +200,7 @@
stream_set_timeout($this->handle_, 0, $this->recvTimeout_*1000);
$this->sendTimeoutSet_ = FALSE;
}
- $data = @fread($this->handle_, 1);
+ $data = @fread($this->handle_, $len);
if ($data === FALSE) {
throw new Exception('TSocket: Could not read '.$len.' bytes from '.
$this->host_.':'.$this->port_);
diff --git a/lib/py/src/server/TServer.py b/lib/py/src/server/TServer.py
index 53f6846..c9a701e 100644
--- a/lib/py/src/server/TServer.py
+++ b/lib/py/src/server/TServer.py
@@ -6,7 +6,7 @@
class TServer:
- """Base interface for a server, which must have a run method."""
+ """Base interface for a server, which must have a serve method."""
def __init__(self, processor, serverTransport, transportFactory=None):
self.processor = processor
@@ -16,7 +16,7 @@
else:
self.transportFactory = transportFactory
- def run(self):
+ def serve(self):
pass
class TSimpleServer(TServer):
@@ -26,7 +26,7 @@
def __init__(self, processor, serverTransport, transportFactory=None):
TServer.__init__(self, processor, serverTransport, transportFactory)
- def run(self):
+ def serve(self):
self.serverTransport.listen()
while True:
client = self.serverTransport.accept()