Commit Graph

47 Commits

Author SHA1 Message Date
fawce 4a582e8952 modified zmq_gen method to yield None when there is no waiting message. This prevents blocking in the next() method of a component. But it requires generators wrapping the component to handle None.
Also modified component's receiver creation to be triggered on the first call to next, rather than iter.
This change means that the zmq context and socket for the component's receiver should always be created in
the same process as the consumer of the generator. Chaining together component wrapped generators will
result in the send process of the last component actually instantiating the receive socket of the prior component.
In this way, the components are actually communicating directly via zmq.

Component's send method now calls the wait_ready(), which waits for the monitor's GO message, inside
the generator loop. This guarantees that the generator's next method is called before the send loop blocks
on the monitor. As a result, components will call __init__ and next() without blocking, mimicking the
behavior of plain generators.
2012-08-04 12:58:07 -04:00
scottsanderson 8437a28c14 generator-style perf now sends a risk report on receipt of DONE 2012-08-03 21:09:05 -04:00
fawce 479ad502f6 addressing race condition between loop_send exit and DONE message delivery. 2012-08-03 01:05:53 -04:00
fawce f166626ea8 multiple sources, each as component, feeding sort. 2012-08-02 22:51:17 -04:00
fawce c2b4689668 intersticial to merge with scott 2012-08-02 18:02:43 -04:00
fawce cfc49d3ccc using classes instead of pure generators in component 2012-08-02 16:20:15 -04:00
fawce 12c7cd3b41 removed extraneous imports to remove circularity 2012-08-02 15:40:26 -04:00
fawce d141422ada component is self-contained! 2012-08-02 14:45:13 -04:00
fawce dd1056bf30 generator backed component, and a starter test for a source. 2012-08-01 23:41:44 -04:00
fawce 318065125f refactored component to use a generator 2012-08-01 21:43:15 -04:00
fawce 6de01a1c6e added support for any component to relay exceptions through monitor. 2012-08-01 14:56:17 -04:00
fawce 22ba5499c3 added log line to track use of devel 2012-07-30 23:11:44 -04:00
fawce 9deaefe6e6 fixes for tests 2012-07-30 13:52:38 -04:00
fawce abf9c8efa5 exception handling code revised. gevent, pypy, and threadsim vestiges removed.
devel flag removed.
2012-07-26 16:22:13 -04:00
fawce 52b597f089 intersticial commit for scott to pick 2012-07-25 12:28:21 -04:00
fawce c02d15016a added timeouts for component when waiting to hear from the monitor. proof of concept exception relay for algorithm's initialize method. 2012-07-24 23:43:40 -04:00
fawce d0e987a8e8 tests passing using the process simulator. 2012-07-24 14:00:33 -04:00
fawce fb2b0c3be5 responses to sdiehl code review 2012-07-18 17:20:31 -04:00
fawce 1262dcdef1 logging converted to share socket with performance 2012-07-17 11:04:32 -04:00
fawce ceb9013363 heartbeats working, however the zipline is now fully sequential. 2012-07-17 11:04:32 -04:00
fawce 18cd9a02df added more frequent heartbeating between requests from monitor. seems to work. 2012-07-17 11:04:32 -04:00
fawce 165d94f784 tweaks 2012-07-17 11:04:31 -04:00
fawce d21abe06ea updated heartbeat tracking to treat missing several heartbeats as a full failure. 2012-07-17 11:02:35 -04:00
fawce 1cc56b52e7 re-enabled the monitor communication in all components. 2012-07-17 11:01:15 -04:00
Stephen Diehl 0342ee7f62 Fix typos. 2012-07-10 14:31:01 -04:00
Stephen Diehl 237ea825ac Merge branch 'threaded_monitor' into scott1
Conflicts:
	zipline/core/monitor.py
	zipline/lines.py
2012-07-06 14:11:40 -04:00
Stephen Diehl 44cdf60feb Minor fix, lots of win. 2012-07-05 13:47:43 -04:00
scottsanderson 14018b9ab7 grammar police on comment 2012-07-04 03:47:41 -04:00
Stephen Diehl 4a3d9b1d83 devel flag on noop monitored system. 2012-07-03 15:40:30 -04:00
fawce d3a28311a5 Merge branch 'threaded_monitor' of github.com:quantopian/zipline into threaded_monitor 2012-07-03 12:14:17 -04:00
Stephen Diehl 04b5923d8a Backport removal of sync_ack 2012-07-03 11:55:31 -04:00
fawce 80157153e3 Merge branch 'threaded_monitor' of github.com:quantopian/zipline into threaded_monitor 2012-07-03 11:38:21 -04:00
fawce 31e0e8208c switching to use push/pull for traffic btw merge and client 2012-07-03 11:37:58 -04:00
Stephen Diehl 6ad6b4dbc7 Reformat logging statements in base component. 2012-07-03 11:19:58 -04:00
Stephen Diehl b19d2d856f Selectively backport portions of new component.py 2012-07-03 11:05:01 -04:00
Stephen Diehl 06e6207020 Update logging system 2012-06-12 07:11:52 -04:00
Stephen Diehl aac8e92b06 Logbook for component state tracking. 2012-06-11 13:40:54 -04:00
Stephen Diehl 270e067426 FSM actions for Feed and Merge. 2012-06-11 13:10:05 -04:00
Stephen Diehl fefca77fe2 FSM for Feed 2012-06-11 09:26:48 -04:00
Stephen Diehl 077fb168ce Added interp to core. 2012-05-27 21:21:54 -04:00
Stephen Diehl 3446c116ab Process Simulator! 2012-05-26 15:54:43 -04:00
Stephen Diehl b1f8bbd189 Removed redundent flow class. 2012-05-16 17:19:14 -04:00
Stephen Diehl 3ad1f250e6 Cleaned up OOP, first round. 2012-05-16 14:33:16 -04:00
Thomas Wiecki e26638058c Reverted path independence code in factory.py. Not sure how to fix with new path structure. 2012-05-15 17:37:27 -04:00
Stephen Diehl 8b95aebcf2 Refactor lots of things. 2012-05-14 10:57:40 -04:00
Stephen Diehl ca60d3f8e0 Refactor component tree. 2012-05-14 09:14:26 -04:00
Stephen Diehl f60794067e reworked directory 2012-05-09 09:12:11 -04:00