示例#1
0
    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
示例#2
0
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