diff --git a/lib/cpp/src/thrift/server/TThreadPoolServer.cpp b/lib/cpp/src/thrift/server/TThreadPoolServer.cpp
index d3b9714..ef1f522 100644
--- a/lib/cpp/src/thrift/server/TThreadPoolServer.cpp
+++ b/lib/cpp/src/thrift/server/TThreadPoolServer.cpp
@@ -152,7 +152,7 @@
       // Add to threadmanager pool
       shared_ptr<TThreadPoolServer::Task> task(new TThreadPoolServer::Task(
             *this, processor, inputProtocol, outputProtocol, client));
-      threadManager_->add(task, timeout_);
+      threadManager_->add(task, timeout_, taskExpiration_);
 
     } catch (TTransportException& ttx) {
       if (inputTransport != NULL) { inputTransport->close(); }
@@ -202,4 +202,12 @@
   timeout_ = value;
 }
 
+int64_t TThreadPoolServer::getTaskExpiration() const {
+  return taskExpiration_;
+}
+
+void TThreadPoolServer::setTaskExpiration(int64_t value) {
+  taskExpiration_ = value;
+}
+
 }}} // apache::thrift::server
diff --git a/lib/cpp/src/thrift/server/TThreadPoolServer.h b/lib/cpp/src/thrift/server/TThreadPoolServer.h
index 70b19bb..8a1fc16 100644
--- a/lib/cpp/src/thrift/server/TThreadPoolServer.h
+++ b/lib/cpp/src/thrift/server/TThreadPoolServer.h
@@ -49,7 +49,8 @@
             protocolFactory),
     threadManager_(threadManager),
     stop_(false),
-    timeout_(0) {}
+    timeout_(0),
+    taskExpiration_(0) {}
 
   template<typename Processor>
   TThreadPoolServer(
@@ -62,7 +63,8 @@
     TServer(processor, serverTransport, transportFactory, protocolFactory),
     threadManager_(threadManager),
     stop_(false),
-    timeout_(0) {}
+    timeout_(0),
+    taskExpiration_(0) {}
 
   template<typename ProcessorFactory>
   TThreadPoolServer(
@@ -79,7 +81,8 @@
             inputProtocolFactory, outputProtocolFactory),
     threadManager_(threadManager),
     stop_(false),
-    timeout_(0) {}
+    timeout_(0),
+    taskExpiration_(0) {}
 
   template<typename Processor>
   TThreadPoolServer(
@@ -96,7 +99,8 @@
             inputProtocolFactory, outputProtocolFactory),
     threadManager_(threadManager),
     stop_(false),
-    timeout_(0) {}
+    timeout_(0),
+    taskExpiration_(0) {}
 
   virtual ~TThreadPoolServer();
 
@@ -111,6 +115,10 @@
     serverTransport_->interrupt();
   }
 
+  virtual int64_t getTaskExpiration() const;
+
+  virtual void setTaskExpiration(int64_t value);
+
  protected:
 
   boost::shared_ptr<ThreadManager> threadManager_;
@@ -119,6 +127,8 @@
 
   volatile int64_t timeout_;
 
+  volatile int64_t taskExpiration_;
+
 };
 
 }}} // apache::thrift::server
