File tree Expand file tree Collapse file tree 3 files changed +41
-30
lines changed
src/Core/Rendering/backend Expand file tree Collapse file tree 3 files changed +41
-30
lines changed Original file line number Diff line number Diff line change @@ -92,6 +92,7 @@ def launch_server(self,
9292 clients = {}
9393 for _ in range (nb_clients ):
9494 client , _ = self .server .accept ()
95+ client .settimeout (0.1 )
9596 idx_client : int = unpack ('i' , client .recv (4 ))[0 ]
9697 clients [idx_client ] = client
9798
@@ -194,15 +195,18 @@ def listen_client(self,
194195 """
195196
196197 while not self .is_done [idx_client ]:
197- msg = self .clients [idx_client ].recv (4 )
198- if len (msg ) == 0 :
198+ try :
199+ msg = self .clients [idx_client ].recv (4 )
200+ if len (msg ) == 0 :
201+ pass
202+ elif msg == b'exit' :
203+ self .is_done [idx_client ] = True
204+ self .exit (force_quit = False )
205+ else :
206+ step = unpack ('i' , msg )[0 ]
207+ self .requests .append ((idx_client , step ))
208+ except socket .timeout :
199209 pass
200- elif msg == b'exit' :
201- self .is_done [idx_client ] = True
202- self .exit (force_quit = False )
203- else :
204- step = unpack ('i' , msg )[0 ]
205- self .requests .append ((idx_client , step ))
206210
207211 def update_actors (self ,
208212 step : int ,
Original file line number Diff line number Diff line change 1+ import socket
12from typing import Dict , Optional , Tuple
23from threading import Thread
34from struct import unpack
@@ -115,20 +116,22 @@ def single_client_thread(self):
115116 """
116117
117118 while not self .is_done [0 ]:
118-
119- msg = self .clients [0 ].recv (4 )
120- if len (msg ) == 0 :
119+ try :
120+ msg = self .clients [0 ].recv (4 )
121+ if len (msg ) == 0 :
122+ pass
123+ elif msg == b'exit' :
124+ self .is_done [0 ] = True
125+ self .exit (force_quit = False )
126+ else :
127+ self .__step = (0 , unpack ('i' , msg )[0 ])
128+ process_time = time ()
129+ gui .Application .instance .post_to_main_thread (self ._window ,
130+ self .update_visualizer )
131+ dt = max (0. , self .fps - (time () - process_time ))
132+ sleep (dt )
133+ except socket .timeout :
121134 pass
122- elif msg == b'exit' :
123- self .is_done [0 ] = True
124- self .exit (force_quit = False )
125- else :
126- self .__step = (0 , unpack ('i' , msg )[0 ])
127- process_time = time ()
128- gui .Application .instance .post_to_main_thread (self ._window ,
129- self .update_visualizer )
130- dt = max (0. , self .fps - (time () - process_time ))
131- sleep (dt )
132135
133136 gui .Application .instance .quit ()
134137
Original file line number Diff line number Diff line change 1+ import socket
12from typing import Dict , Optional
23from struct import unpack
34from vedo import show , Plotter
@@ -112,16 +113,19 @@ def single_client_thread(self, _) -> None:
112113 Timer callback for a single Factory.
113114 """
114115
115- msg = self .clients [0 ].recv (4 )
116- if len (msg ) == 0 :
116+ try :
117+ msg = self .clients [0 ].recv (4 )
118+ if len (msg ) == 0 :
119+ pass
120+ elif msg == b'exit' :
121+ self .is_done [0 ] = True
122+ self .exit (force_quit = False )
123+ else :
124+ step = unpack ('i' , msg )[0 ]
125+ self .update_visualizer (step = step , idx_factory = 0 )
126+ self .clients [0 ].send (b'done' )
127+ except socket .timeout :
117128 pass
118- elif msg == b'exit' :
119- self .is_done [0 ] = True
120- self .exit (force_quit = False )
121- else :
122- step = unpack ('i' , msg )[0 ]
123- self .update_visualizer (step = step , idx_factory = 0 )
124- self .clients [0 ].send (b'done' )
125129
126130 def multiple_clients_thread (self , _ ) -> None :
127131 """
You can’t perform that action at this time.
0 commit comments