@@ -373,17 +373,18 @@ static inline bool ompi_proc_is_sentinel (ompi_proc_t *proc)
373373 * we assume an ompi_proc_t is at least aligned on two bytes,
374374 * so if the LSB of a pointer to an ompi_proc_t is 1, we have to handle
375375 * this pointer as a sentinel instead of a pointer.
376- * a sentinel can be seen as a 64 bits array with the following format :
376+ * a sentinel can be seen as an uint64_t with the following format :
377377 * - bit 0 : 1
378378 * - bits 1-15 : local jobid
379379 * - bits 16-31 : job family
380380 * - bits 32-63 : vpid
381381 */
382382static inline uintptr_t ompi_proc_name_to_sentinel (opal_process_name_t name )
383383{
384- uintptr_t tmp , sentinel = 0x1 ;
384+ uintptr_t tmp , sentinel = 0 ;
385385 /* local jobid must fit in 15 bits */
386386 assert (! (ORTE_LOCAL_JOBID (name .jobid ) & 0x8000 ));
387+ sentinel |= 0x1 ;
387388 tmp = (uintptr_t )ORTE_LOCAL_JOBID (name .jobid );
388389 sentinel |= ((tmp << 1 ) & 0xfffe );
389390 tmp = (uintptr_t )ORTE_JOB_FAMILY (name .jobid );
@@ -396,7 +397,7 @@ static inline uintptr_t ompi_proc_name_to_sentinel (opal_process_name_t name)
396397static inline opal_process_name_t ompi_proc_sentinel_to_name (uintptr_t sentinel )
397398{
398399 opal_process_name_t name ;
399- uint16_t local , family ;
400+ uint32_t local , family ;
400401 uint32_t vpid ;
401402 assert (sentinel & 0x1 );
402403 local = (sentinel >> 1 ) & 0x7fff ;
0 commit comments