improvements/fixes from MatN and Andrew related to AppImage and batch render
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / renderfarmclient.C
index 17b345112a4c49891650d459fbe3fe0a51c541bf..24e52db718e0c7a5978d51e2fd413f7336ec3326 100644 (file)
@@ -77,6 +77,7 @@ RenderFarmClient::RenderFarmClient(int port,
        boot_preferences = new Preferences;
        boot_preferences->load_defaults(boot_defaults);
        MWindow::init_plugins(0, boot_preferences);
+       MWindow::init_ladspa_plugins(0, boot_preferences);  
        BC_Signals::set_catch_segv(boot_preferences->trap_sigsegv);
        BC_Signals::set_catch_intr(0);
         if( boot_preferences->trap_sigsegv ) {
@@ -122,6 +123,11 @@ void RenderFarmClient::main_loop()
                        perror(_("RenderFarmClient::main_loop: socket"));
                        return;
                }
+               struct linger lgr;
+               lgr.l_onoff = 0;
+               lgr.l_linger = 0;
+               if( setsockopt(socket_fd, SOL_SOCKET, SO_LINGER, &lgr, sizeof(lgr)) < 0 )
+                       perror("RenderFarmClient::setsockopt:setlinger 0");
 
                if(bind(socket_fd,
                        (struct sockaddr*)&addr,
@@ -147,6 +153,11 @@ void RenderFarmClient::main_loop()
                        perror(_("RenderFarmClient::main_loop: socket"));
                        return;
                }
+               struct linger lgr;
+               lgr.l_onoff = 0;
+               lgr.l_linger = 0;
+               if( setsockopt(socket_fd, SOL_SOCKET, SO_LINGER, &lgr, sizeof(lgr)) < 0 )
+                       perror("RenderFarmClient::setsockopt:setlinger 1");
 
                if(bind(socket_fd,
                        (struct sockaddr*)&addr,
@@ -267,7 +278,8 @@ int RenderFarmClientThread::read_socket(char *data, int len)
        int bytes_read = 0;
        int offset = 0;
 //printf("RenderFarmClientThread::read_socket 1\n");
-       watchdog->begin_request();
+       if( watchdog )
+               watchdog->begin_request();
        while(len > 0 && bytes_read >= 0)
        {
                bytes_read = read(socket_fd, data + offset, len);
@@ -282,7 +294,8 @@ int RenderFarmClientThread::read_socket(char *data, int len)
                        break;
                }
        }
-       watchdog->end_request();
+       if( watchdog )
+               watchdog->end_request();
 //printf("RenderFarmClientThread::read_socket 10\n");
 
        return offset;