77#include < sys/socket.h>
88#include < sys/wait.h>
99
10+ #include < cstdio>
11+ #include < sstream>
12+ #include < string>
1013#include < thread>
1114
1215#include " common.h"
1316#include " test/test_common.h"
1417#include " test/example_task.h"
1518#include " event_loop.h"
1619#include " io.h"
17- #include " utstring.h"
1820#include " task.h"
1921#include " state/object_table.h"
2022#include " state/task_table.h"
@@ -83,31 +85,30 @@ LocalSchedulerMock *LocalSchedulerMock_init(int num_workers,
8385 memset (mock, 0 , sizeof (LocalSchedulerMock));
8486 mock->loop = event_loop_create ();
8587 /* Bind to the local scheduler port and initialize the local scheduler. */
86- UT_string * plasma_manager_socket_name = bind_ipc_sock_retry (
88+ std::string plasma_manager_socket_name = bind_ipc_sock_retry (
8789 plasma_manager_socket_name_format, &mock->plasma_manager_fd );
8890 mock->plasma_store_fd =
8991 connect_ipc_sock_retry (plasma_store_socket_name, 5 , 100 );
90- UT_string * local_scheduler_socket_name = bind_ipc_sock_retry (
92+ std::string local_scheduler_socket_name = bind_ipc_sock_retry (
9193 local_scheduler_socket_name_format, &mock->local_scheduler_fd );
9294 CHECK (mock->plasma_store_fd >= 0 && mock->local_scheduler_fd >= 0 );
9395
94- UT_string *worker_command;
95- utstring_new (worker_command);
96- utstring_printf (worker_command,
97- " python ../../../python/ray/workers/default_worker.py "
98- " --node-ip-address=%s --object-store-name=%s "
99- " --object-store-manager-name=%s --local-scheduler-name=%s "
100- " --redis-address=%s:%d" ,
101- node_ip_address, plasma_store_socket_name,
102- utstring_body (plasma_manager_socket_name),
103- utstring_body (local_scheduler_socket_name), redis_addr,
104- redis_port);
96+ /* Construct worker command */
97+ std::stringstream worker_command_ss;
98+ worker_command_ss << " python ../../../python/ray/workers/default_worker.py"
99+ << " --node-ip-address=" << node_ip_address
100+ << " --object-store-name=" << plasma_store_socket_name
101+ << " --object-store-manager-name="
102+ << plasma_manager_socket_name
103+ << " --local-scheduler-name=" << local_scheduler_socket_name
104+ << " --redis-address=" << redis_addr << " :" << redis_port;
105+ std::string worker_command = worker_command_ss.str ();
105106
106107 mock->local_scheduler_state = LocalSchedulerState_init (
107108 " 127.0.0.1" , mock->loop , redis_addr, redis_port,
108- utstring_body ( local_scheduler_socket_name), plasma_store_socket_name,
109- utstring_body ( plasma_manager_socket_name), NULL , false ,
110- static_resource_conf, utstring_body ( worker_command), num_workers);
109+ local_scheduler_socket_name. c_str ( ), plasma_store_socket_name,
110+ plasma_manager_socket_name. c_str ( ), NULL , false , static_resource_conf ,
111+ worker_command. c_str ( ), num_workers);
111112
112113 /* Accept the workers as clients to the plasma manager. */
113114 for (int i = 0 ; i < num_workers; ++i) {
@@ -123,16 +124,13 @@ LocalSchedulerMock *LocalSchedulerMock_init(int num_workers,
123124 std::thread (register_clients, num_mock_workers, mock);
124125
125126 for (int i = 0 ; i < num_mock_workers; ++i) {
126- mock->conns [i] = LocalSchedulerConnection_init (
127- utstring_body (local_scheduler_socket_name), NIL_WORKER_ID, NIL_ACTOR_ID ,
128- true , 0 );
127+ mock->conns [i] =
128+ LocalSchedulerConnection_init (local_scheduler_socket_name. c_str () ,
129+ NIL_WORKER_ID, NIL_ACTOR_ID, true , 0 );
129130 }
130131
131132 background_thread.join ();
132133
133- utstring_free (worker_command);
134- utstring_free (plasma_manager_socket_name);
135- utstring_free (local_scheduler_socket_name);
136134 return mock;
137135}
138136
0 commit comments