Fortran · 1125 bytes Raw Blame History
1 program pipeline_tracking_demo
2 use fgof_jobs, only : &
3 FGOF_JOBS_SIGNAL_SCOPE_GROUP, &
4 attach_job, &
5 attach_pipeline_members, &
6 complete_job, &
7 configure_job, &
8 job_exit_result, &
9 job_is_finished, &
10 job_stop_result, &
11 make_job_spec, &
12 observe_wait_result, &
13 pipeline_member_count
14 use fgof_jobs_types, only : job_handle, job_spec
15 implicit none
16
17 type(job_spec) :: spec
18 type(job_handle) :: handle
19
20 spec = make_job_spec("pipeline-head", signal_scope=FGOF_JOBS_SIGNAL_SCOPE_GROUP)
21 call configure_job(handle, spec)
22 call attach_job(handle, 101)
23 call attach_pipeline_members(handle, [101, 102, 103])
24 call observe_wait_result(handle, job_stop_result(20, pid=102, process_group=101))
25 call complete_job(handle, job_exit_result(0, pid=101, process_group=101))
26 call complete_job(handle, job_exit_result(0, pid=102, process_group=101))
27 call complete_job(handle, job_exit_result(0, pid=103, process_group=101))
28
29 write (*, '(a,i0)') "members=", pipeline_member_count(handle)
30 write (*, '(a,l1)') "finished=", job_is_finished(handle)
31 end program pipeline_tracking_demo
32