forked from bartvdbraak/blender
netrender:
Disable windows' blocking crash reports in child process. (windows only) Get server port as well as ip address from master broadcast (broadcast is on a fixed port).
This commit is contained in:
parent
bf34328634
commit
b572ae2a8b
@ -632,5 +632,5 @@ def runMaster(address, broadcast, path, update_stats, test_break):
|
|||||||
if broadcast:
|
if broadcast:
|
||||||
if time.time() - start_time >= 10: # need constant here
|
if time.time() - start_time >= 10: # need constant here
|
||||||
print("broadcasting address")
|
print("broadcasting address")
|
||||||
s.sendto(bytes("%s:%i" % address, encoding='utf8'), 0, ('<broadcast>',address[1]))
|
s.sendto(bytes("%i" % address[1], encoding='utf8'), 0, ('<broadcast>', 8000))
|
||||||
start_time = time.time()
|
start_time = time.time()
|
||||||
|
@ -339,14 +339,15 @@ class netclientscan(bpy.types.Operator):
|
|||||||
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
|
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
|
||||||
s.settimeout(30)
|
s.settimeout(30)
|
||||||
|
|
||||||
s.bind(('', netsettings.server_port))
|
s.bind(('', 8000))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
buf, address = s.recvfrom(128)
|
buf, address = s.recvfrom(64)
|
||||||
|
|
||||||
print("received:", buf)
|
print("received:", buf)
|
||||||
|
|
||||||
netsettings.server_address = address[0]
|
netsettings.server_address = address[0]
|
||||||
|
netsettings.server_port = int(str(buf, encoding='utf8'))
|
||||||
except socket.timeout:
|
except socket.timeout:
|
||||||
print("no server info")
|
print("no server info")
|
||||||
|
|
||||||
|
@ -9,6 +9,22 @@ CANCEL_POLL_SPEED = 2
|
|||||||
MAX_TIMEOUT = 10
|
MAX_TIMEOUT = 10
|
||||||
INCREMENT_TIMEOUT = 1
|
INCREMENT_TIMEOUT = 1
|
||||||
|
|
||||||
|
if platform.system() == 'Windows' and platform.version() >= '5': # Error mode is only available on Win2k or higher, that's version 5
|
||||||
|
import ctypes
|
||||||
|
def SetErrorMode():
|
||||||
|
val = ctypes.windll.kernel32.SetErrorMode(0x0002)
|
||||||
|
ctypes.windll.kernel32.SetErrorMode(val | 0x0002)
|
||||||
|
return val
|
||||||
|
|
||||||
|
def RestoreErrorMode(val):
|
||||||
|
ctypes.windll.kernel32.SetErrorMode(val)
|
||||||
|
else:
|
||||||
|
def SetErrorMode():
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def RestoreErrorMode(val):
|
||||||
|
pass
|
||||||
|
|
||||||
def slave_Info():
|
def slave_Info():
|
||||||
sysname, nodename, release, version, machine, processor = platform.uname()
|
sysname, nodename, release, version, machine, processor = platform.uname()
|
||||||
slave = netrender.model.RenderSlave()
|
slave = netrender.model.RenderSlave()
|
||||||
@ -101,9 +117,13 @@ def render_slave(engine, scene):
|
|||||||
print("frame", frame.number)
|
print("frame", frame.number)
|
||||||
frame_args += ["-f", str(frame.number)]
|
frame_args += ["-f", str(frame.number)]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
start_t = time.time()
|
start_t = time.time()
|
||||||
|
|
||||||
|
val = SetErrorMode()
|
||||||
process = subprocess.Popen([sys.argv[0], "-b", job_full_path, "-o", JOB_PREFIX + "######", "-E", "BLENDER_RENDER", "-F", "MULTILAYER"] + frame_args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
process = subprocess.Popen([sys.argv[0], "-b", job_full_path, "-o", JOB_PREFIX + "######", "-E", "BLENDER_RENDER", "-F", "MULTILAYER"] + frame_args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||||
|
RestoreErrorMode(val)
|
||||||
|
|
||||||
headers = {"job-id":job.id, "slave-id":slave_id}
|
headers = {"job-id":job.id, "slave-id":slave_id}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user