def __init__(self, priority=0, info=''): assert len(info) < 1024 self.priority = priority self.info = info self.conn = None try: conn = socket.create_connection(ADDR, NET_TIMEOUT) schedaemon_util.send_struct(conn, PRIORITY_STRUCT, self.priority) schedaemon_util.send_buffer(conn, self.info) except socket.error: raise ExTimeout() self.conn = conn return
def remote_compile_server(conn, cc_bin): conn.settimeout(None) try: source_file_name = str(schedaemon_util.recv_buffer(conn)) compile_args_str = str(schedaemon_util.recv_buffer(conn)) compile_args = compile_args_str.split('\0') source_data = schedaemon_util.recv_buffer(conn) except schedaemon_util.ExSocketClosed: return input_files = [(source_file_name, source_data)] args = [cc_bin] + compile_args + [source_file_name] (returncode, outdata, errdata, output_files) = run_in_temp_dir(input_files, args) schedaemon_util.send_struct(conn, '<i', returncode) schedaemon_util.send_buffer(conn, outdata) schedaemon_util.send_buffer(conn, errdata) schedaemon_util.send_struct(conn, '<Q', len(output_files)) for (name, data) in output_files: schedaemon_util.send_buffer(conn, name) schedaemon_util.send_buffer(conn, data) return