Merge branch 'main' of ssh://git.rileyk.au:19482/riley/uniproc

This commit is contained in:
2025-03-06 18:20:46 +11:00

View File

@@ -1,26 +1,33 @@
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <Windows.h>
typedef struct {
typedef struct {
uint64_t userdata;
FILE* in;
FILE* out;
FILE* err;
uint64_t userdata;
FILE* in;
FILE* out;
FILE* err;
// OS-dependent handle to the process
uint32_t _proc_hdl;
} uniproc_process;
// OS-dependent handle to the process
uint32_t _proc_hdl;
uniproc_process uniproc_create_process(const char* cmd, const size_t num_args, const char** argv);
void uniproc_await_processes(const uniproc_process* p, int* return_codes, const size_t num_processes);
void uniproc_close_process(uniproc_process* p);
int uniproc_are_processes_finished(const uniproc_process* p, const size_t num_processes);
void uniproc_nullify_processes(uniproc_process* p, const size_t num_processes);
int uniproc_is_process_null(const uniproc_process* p);
void uniproc_await_any_processes(const uniproc_process* p, const size_t num_processes);
void uniproc_set_userdata(uniproc_process* p, void const* userdata);
void* uniproc_get_userdata(uniproc_process* p);
} uniproc_process;
uniproc_process uniproc_create_process(const char* cmd, const size_t num_args, const char** argv);
void uniproc_await_processes(const uniproc_process* p, int* return_codes, const size_t num_processes);
void uniproc_close_process(uniproc_process* p);
int uniproc_are_processes_finished(const uniproc_process* p, const size_t num_processes);
void uniproc_nullify_processes(uniproc_process* p, const size_t num_processes);
int uniproc_is_process_null(const uniproc_process* p);
void uniproc_await_any_processes(const uniproc_process* p, const size_t num_processes);
void uniproc_set_userdata(uniproc_process* p, void const* userdata);
void* uniproc_get_userdata(uniproc_process* p);
#ifdef __cplusplus
}
#endif