X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fforkbase.h;h=2ca84b71d4c6c56ffc71db925e0840de2ac642ff;hp=5502413df63d28b36effaa46f9393ccb44aeb1a6;hb=803cf48f8f7ee246eb5473e55fc2125e8b398250;hpb=efb3600851fd27b13d3053ffbdb6434535580bfd diff --git a/cinelerra-5.1/cinelerra/forkbase.h b/cinelerra-5.1/cinelerra/forkbase.h index 5502413d..2ca84b71 100644 --- a/cinelerra-5.1/cinelerra/forkbase.h +++ b/cinelerra-5.1/cinelerra/forkbase.h @@ -30,7 +30,7 @@ #include -class ForkBase +class ForkBase : public Mutex { public: enum { EXIT_CODE=0x7fff }; @@ -39,14 +39,15 @@ public: ForkBase(); virtual ~ForkBase(); - int is_running(); + virtual int is_running() = 0; + void send_bfr(int fd, const void *bfr, int len); int read_timeout(int ms, int fd, void *data, int bytes); int read_parent(int ms); int send_parent(int64_t value, const void *data, int bytes); int read_child(int ms); int send_child(int64_t value, const void *data, int bytes); - int done, pid; + int done, ppid, pid; ForkChild *child; int child_fd; @@ -67,9 +68,10 @@ class ForkChild : public ForkBase public: ForkChild(); virtual ~ForkChild(); - virtual void run() = 0; virtual int handle_child(); int child_iteration(); + int is_running(); + virtual void run() {} }; class ForkParent : public Thread, public ForkBase @@ -79,14 +81,13 @@ public: virtual ~ForkParent(); virtual int handle_parent(); virtual ForkChild *new_fork() = 0; + int is_running(); void start_child(); void start(); void stop(); void run(); int parent_iteration(); - - Mutex *lock; }; #endif