+ @failtrap
+ def reserve(self):
+ """ Performs resource reserve.
+
+ This method is responsible for reserving an individual resource
+ matching user requirements.
+
+ This method should not be overriden directly. Specific functionality
+ should be added in the do_reserved method.
+
+ """
+ with self._release_lock:
+ if self._state != ResourceState.RELEASED:
+ self.do_reserve()
+