00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00021
00022 #ifndef NET_INSTAWEB_UTIL_PUBLIC_SLOW_WORKER_H_
00023 #define NET_INSTAWEB_UTIL_PUBLIC_SLOW_WORKER_H_
00024
00025 #include "net/instaweb/util/public/basictypes.h"
00026 #include "net/instaweb/util/public/worker.h"
00027
00028 namespace net_instaweb {
00029
00030 class Function;
00031 class ThreadSystem;
00032
00034 class SlowWorker : public Worker {
00035 public:
00038 explicit SlowWorker(ThreadSystem* runtime);
00039
00041 virtual ~SlowWorker();
00042
00047 void RunIfNotBusy(Function* closure);
00048
00049 private:
00050 virtual bool IsPermitted(Function* closure);
00051
00052 DISALLOW_COPY_AND_ASSIGN(SlowWorker);
00053 };
00054
00055 }
00056
00057 #endif ///< NET_INSTAWEB_UTIL_PUBLIC_SLOW_WORKER_H_