Skip to content
Snippets Groups Projects
Commit 0416c0b9 authored by tewk's avatar tewk
Browse files

Fixed job kill rpc function

parent aa55a6f4
No related branches found
No related tags found
No related merge requests found
......@@ -195,3 +195,22 @@ int find_job_id_for_session ( slurmd_shmem_t * shmem , int session_id )
info ( "No job_id found for session_id %i", session_id );
return SLURM_FAILURE ;
}
void * find_job_step ( slurmd_shmem_t * shmem , int job_id , int job_step_id )
{
int i ;
pthread_mutex_lock ( & shmem -> mutex ) ;
for ( i=0 ; i < MAX_JOB_STEPS ; i ++ )
{
if (shmem -> job_steps[i].used == false
&& shmem -> job_steps[i].job_id == job_id
&& shmem -> job_steps[i].job_step_id == job_step_id
)
{
pthread_mutex_unlock ( & shmem -> mutex ) ;
return & shmem -> job_steps[i] ;
}
}
pthread_mutex_unlock ( & shmem -> mutex ) ;
return (void * ) SLURM_ERROR ;
}
......@@ -54,4 +54,6 @@ void * alloc_task ( slurmd_shmem_t * shmem , job_step_t * job_step ) ;
int find_job_id_for_session ( slurmd_shmem_t * shmem , int session_id ) ;
/* clears a job_step and associated task list for future use */
int deallocate_job_step ( job_step_t * jobstep ) ;
/* find a particular job_step */
void * find_job_step ( slurmd_shmem_t * shmem , int job_id , int job_step_id ) ;
#endif
......@@ -464,24 +464,20 @@ int setup_child_pipes ( int * pipes )
int kill_tasks ( kill_tasks_msg_t * kill_task_msg )
{
int error_code = SLURM_SUCCESS ;
slurmd_shmem_t * shmem_ptr = get_shmem ( ) ;
job_step_t * job_step_ptr = find_job_step ( shmem_ptr , kill_task_msg -> job_id , kill_task_msg -> job_step_id ) ;
task_t * task_ptr = job_step_ptr -> head_task ;
while ( task_ptr != NULL )
{
kill_task ( task_ptr ) ;
task_ptr = task_ptr -> next ;
}
return error_code ;
}
int kill_task ( task_t * task )
{
return SLURM_SUCCESS ;
}
int setup_task_env (task_start_t * task_start )
{
int i ;
for ( i = 0 ; i < task_start -> launch_msg -> envc ; i ++ )
{
char * env_var = xmalloc ( strlen ( task_start -> launch_msg -> env[i] ) ) ;
memcpy ( env_var , task_start -> launch_msg -> env[i] , strlen ( task_start -> launch_msg -> env[i] ) ) ;
putenv ( env_var ) ;
}
kill ( task -> task_start . exec_pid , SIGKILL ) ;
return SLURM_SUCCESS ;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment