<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def process_message(self, actor, body, message):
 """Process actor message depending depending on the the worker settings. If greenlets are enabled in the worker, the actor message is processed in a greenlet from the greenlet pool, Otherwise, the message is processed by the same thread. The method is invoked from the callback `cell.actors.Actor.on_message` upon receiving of a message. :keyword actor: instance of :class:`Actor` or its derivative. The actor instance to process the message. For the full list of arguments see :meth:`cell.actors.Actor._on_message`. """

        if actor is not self and self.is_green():
            self.pool.spawn_n(actor._on_message, body, message)
        else:
            if not self.is_green() and message.properties.get('reply_to'):
                warn('Starting a blocking call (%s) on actor (%s) '
                     'when greenlets are disabled.',
                     itemgetter('method')(body), actor.__class__)
            actor._on_message(body, message)