Commit graph

24 commits

Author SHA1 Message Date
Eric Frias
3222dc7c0b When reusing a context, re-initialize most of its fields. This fixes at least two errors:
- we were canceling tasks that hadn't been canceled, because the canceled flag was left set to true and the next task assigned to the context then became canceled as soon as it yielded
 - we were resumeing blocked tasks before they should have resumed, because their blocking_promises list wasn't cleared and they were unblocking because the erroneous promises were fulfilled
As a debugging aid, we also record the cancellation reason whenever a task is canceled, and include that in the canceled_exception (this is only enabled in debug builds)
2014-08-28 15:43:26 -04:00
Eric Frias
ac385d1f6b Allow the user to supply a reason string when canceling a task (useful for debugging) 2014-08-27 14:07:44 -04:00
Eric Frias
8841f5e271 Import thread/task_specific variables 2014-08-27 12:20:19 -04:00
Eric Frias
27096f15a7 Log the names of tasks to the log file (now contains thread_name:task_name} 2014-08-24 18:33:05 -04:00
Eric Frias
978de7885a Add a macro to check if a task that shouldn't yield actually yields. 2014-08-02 19:43:28 -04:00
Eric Frias
8fa21821ae Suppress "inherited via dominance" warning 2014-08-02 15:49:07 -04:00
dnotestein
7cc69f3bb7 Set canceled flag in task's context object so that we cancel out of active tasks when they try to resume. Wrap a try-catch block around tcp and udp resolve requests to convert any non-fc exceptions to fc exceptions. Minor change to clarify design intent that request_time_task should always be running in _ntp_thread. 2014-08-01 11:31:36 -04:00
Vikram Rajkumar
f644b1e475 Fix compiler warning 2014-07-27 20:46:39 -04:00
Eric Frias
d847f6469a Allow us to require assigning descriptions to all async tasks to aid in debugging 2014-07-27 17:37:21 -04:00
Eric Frias
24ba357b0d Make future's cancel_and_wait automatically swallow the canceled_exception since it is expected. 2014-07-26 14:51:48 -04:00
Daniel Larimer
eed62c8338 sockets now wait for any pending write or read operations to finish before destructing 2014-07-17 17:03:25 -04:00
Vikram Rajkumar
e9b1b8ec2e Use a separate thread for log compression 2014-07-03 17:24:06 -04:00
Daniel Larimer
c33acad0ab fix udt sockets, actually enable non blocking operation 2014-06-29 01:38:46 -04:00
Daniel Larimer
d2072e9d3a updates to thread / udt socket 2014-06-26 20:10:56 -04:00
HackFisher
8b73226312 This should be a typo, fix it.
move ">" before #endif
2014-03-09 16:18:00 +08:00
Eric Frias
fdbaf88e5e Provide a way to intercept Win32 structured exceptions in async tasks
Something about the stacks created by boost::context prevents global structured exception handlers
from being called.  This allows the user to register a handler which will be called when there
is an unhandled structured exception in async task.
2014-03-08 18:48:19 -05:00
vogel76
08ab455dff [BW]: [Fix] fc::task_base class member initialization. 2014-01-06 23:58:42 +01:00
dnotestein
d1d365beaf further attempt at fixing Linux compile error 2013-12-13 09:13:08 -05:00
dnotestein
2d0bdb8e7a attempt to fix Linux compile error, needs to be verified on a Linux build machine 2013-12-12 22:18:09 -05:00
dnotestein
8e47816c4e Fix for problem reported with Boost 1.55 (memory_order_consume removed?). Also added move constructors for future, this second change probably needs review. 2013-12-12 09:19:15 -05:00
Daniel Larimer
9066e46b1b fix potential crashes by checking nullptr 2013-09-01 19:45:15 -04:00
Daniel Larimer
7ff92d3746 added ability to query cancel flag from future 2013-08-06 12:45:49 -04:00
Daniel Larimer
b07aed4a22 Update use of fc::string and fc::vector. 2013-06-27 14:19:08 -04:00
Daniel Larimer
59a121d64b Updating FC with changes from phoenix-int 2013-06-05 15:19:00 -04:00