diff options
Diffstat (limited to 'addjob.c')
-rw-r--r-- | addjob.c | 19 |
1 files changed, 16 insertions, 3 deletions
@@ -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); |