code: RLSSuspendToken registerSuspend(int timeout)
      {
          if (tc.isEntryEnabled()) Tr.entry(tc, "registerSuspend", new Integer(timeout));
          
      	// Generate the suspend token
          // RLSSuspendToken token = new RLSSuspendTokenImpl();
          RLSSuspendToken token = Configuration.getRecoveryLogComponent()
              .createRLSSuspendToken(null);
          
          // Alarm reference
          Alarm alarm = null;
          
      	// For a timeout value greater than zero, we create an alarm
          // A zero timeout value indicates that this suspend operation will
          // never timeout, hence no alarm is required
          if (timeout > 0)
          {
              // Create an alarm
              // alarm = AlarmManager.createNonDeferrable(((long)timeout) * 1000L, this, token);
              alarm = Configuration.getAlarmManager().
                  scheduleAlarm(timeout * 1000L, this, token);
              
              if (tc.isEventEnabled()) Tr.event(tc, "Alarm has been created for this suspend call", alarm);
          }
          
          synchronized(_tokenMap)
          {
          	// Register the token and the alarm with the token map
          	// bearing in mind that this alarm could be null
          	_tokenMap.put(token, alarm);
          }
          
          if (tc.isEntryEnabled()) Tr.exit(tc, "registerSuspend", token);
          
          // Return the generated token
      	return token;
      }
docs: Registers that a suspend call has been made on the RecoveryLogService and generates
  a unique RLSSuspendToken which must be passed in to registerResume to cancel this
  suspend operation
  
  @param timeout the  value in seconds in which a corresponding resume call is expected
  @return A unique token