<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_resource_subscription_async(self, device_id, resource_path, callback_fn, fix_path=True, queue_size=5):
 """Subscribe to resource updates with callback function. When called on a valid device and resource path a subscription is setup so that any update on the resource path value triggers an update on the callback function. :param device_id: Name of device to set the subscription on (Required) :param resource_path: The resource path on device to observe (Required) :param callback_fn: Callback function to be executed on update to subscribed resource :param fix_path: Removes leading / on resource_path if found :param queue_size: Sets the Queue size. If set to 0, no queue object will be created :returns: void """

        queue = self.add_resource_subscription(device_id, resource_path, fix_path, queue_size)

        # Setup daemon thread for callback function
        t = threading.Thread(target=self._subscription_handler,
                             args=[queue, device_id, resource_path, callback_fn])
        t.daemon = True
        t.start()