summaryrefslogtreecommitdiff
path: root/addjob.c
diff options
context:
space:
mode:
authorYour Name <you@example.com>2025-07-15 02:55:46 +0000
committerYour Name <you@example.com>2025-07-15 02:55:46 +0000
commit082e3adb0f3fd13b2f9de827449f1ec1ed037bf3 (patch)
tree3241cfc4b8cfbea201909df643f1011f650d8a27 /addjob.c
parent2dbcce88ab7a73304f770006bcae53461c6daddc (diff)
0.9 + nightly builds
Diffstat (limited to 'addjob.c')
-rw-r--r--addjob.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/addjob.c b/addjob.c
index db6a9d3..6af7847 100644
--- a/addjob.c
+++ b/addjob.c
@@ -8,11 +8,20 @@
#include "shared.h"
int main(int argc, char *argv[]) {
- if (argc != 2) {
- fprintf(stderr, "Usage: %s <path-to-job-binary>\n", argv[0]);
+ if (argc != 2 && argc != 3) {
+ fprintf(stderr, "Usage: %s <path-to-job-binary> [node]\n", argv[0]);
return 1;
}
+ int target_node = -1;
+ if (argc == 3) {
+ target_node = atoi(argv[2]);
+ if (target_node < 0 || target_node >= MAX_NODES) {
+ fprintf(stderr, "[addjob] Invalid node ID: %d\n", target_node);
+ return 2;
+ }
+ }
+
int shm_fd = shm_open(SHM_NAME, O_RDWR, 0666);
if (shm_fd == -1) {
perror("shm_open");
@@ -30,8 +39,12 @@ int main(int argc, char *argv[]) {
printf("[addjob] Queue full\n");
} else {
strncpy(queue->jobs[queue->tail], argv[1], MAX_PATH);
+ queue->job_nodes[queue->tail] = target_node;
queue->tail = (queue->tail + 1) % MAX_JOBS;
- printf("[addjob] Queued job: %s\n", argv[1]);
+ printf("[addjob] Queued job: %s", argv[1]);
+ if (target_node != -1)
+ printf(" for node %d", target_node);
+ printf("\n");
}
pthread_mutex_unlock(&queue->mutex);