Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Poirier <theeth@yahoo.com>2009-09-17 22:40:37 +0400
committerMartin Poirier <theeth@yahoo.com>2009-09-17 22:40:37 +0400
commitb572ae2a8bdd4adfc1641a43ca02061b9ae6eff9 (patch)
tree3b7eba8120460e9400550d5387b9ec0f2c65381d
parentbf34328634266a347e2872e01a06960638a900a4 (diff)
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).
-rw-r--r--release/io/netrender/master.py2
-rw-r--r--release/io/netrender/operators.py5
-rw-r--r--release/io/netrender/slave.py24
3 files changed, 26 insertions, 5 deletions
diff --git a/release/io/netrender/master.py b/release/io/netrender/master.py
index 29cec4e2232..8f59ef37069 100644
--- a/release/io/netrender/master.py
+++ b/release/io/netrender/master.py
@@ -632,5 +632,5 @@ def runMaster(address, broadcast, path, update_stats, test_break):
if broadcast:
if time.time() - start_time >= 10: # need constant here
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()
diff --git a/release/io/netrender/operators.py b/release/io/netrender/operators.py
index 928c2b9efaf..e6888731437 100644
--- a/release/io/netrender/operators.py
+++ b/release/io/netrender/operators.py
@@ -339,14 +339,15 @@ class netclientscan(bpy.types.Operator):
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.settimeout(30)
- s.bind(('', netsettings.server_port))
+ s.bind(('', 8000))
try:
- buf, address = s.recvfrom(128)
+ buf, address = s.recvfrom(64)
print("received:", buf)
netsettings.server_address = address[0]
+ netsettings.server_port = int(str(buf, encoding='utf8'))
except socket.timeout:
print("no server info")
diff --git a/release/io/netrender/slave.py b/release/io/netrender/slave.py
index 3a4e77abc54..1f4ef3a3616 100644
--- a/release/io/netrender/slave.py
+++ b/release/io/netrender/slave.py
@@ -9,6 +9,22 @@ CANCEL_POLL_SPEED = 2
MAX_TIMEOUT = 10
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():
sysname, nodename, release, version, machine, processor = platform.uname()
slave = netrender.model.RenderSlave()
@@ -100,10 +116,14 @@ def render_slave(engine, scene):
for frame in job.frames:
print("frame", frame.number)
frame_args += ["-f", str(frame.number)]
-
+
+
+
start_t = time.time()
- 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)
+ 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)
+ RestoreErrorMode(val)
headers = {"job-id":job.id, "slave-id":slave_id}