# -*- coding: utf-8 -*-
import logging
log = logging.getLogger("mysc.thread_utils")
import threading
import wx
from pubsub import pub

def call_threaded(func, *args, **kwargs):
    #Call the given function in a daemonized thread and return the thread.
    def new_func(*a, **k):
        try:
            func(*a, **k)
        except:
            log.exception("Thread %d with function %r, args of %r, and kwargs of %r failed to run." % (threading.current_thread().ident, func, a, k))
#   pass
    thread = threading.Thread(target=new_func, args=args, kwargs=kwargs)
    thread.daemon = True
    thread.start()
    return thread
