use crate::service::client;
use crate::service::process_manager;
use crate::service::service_request::ServiceRequestData;
use crate::service::service_reply::ServiceReplyData;
pub fn spawn(program: &str) -> Result<i64, crate::error_kind::ErrorKind>
{
let mut pid: u64 = 0;
let program_bytes = program.as_bytes();
let request_data = ServiceRequestData::new(&program_bytes[0], program.len());
let result = client::send_service_request_and_wait_for_reply("process_manager", process_manager::PROCESS_MANAGER_SPAWN_PROCESS, &request_data);
if result.is_err() {
return Err(crate::error_kind::ErrorKind::from(result.err().unwrap()));
} else {
let reply: ServiceReplyData<i64> = result.unwrap();
let reply_message_ref: &i64 = reply.get_reply_message_ref();
return Ok(*reply_message_ref);
}
}