WebFund 2014W Lecture 18

From Soma-notes
Jump to navigation Jump to search

The video from the lecture given on March 19, 2014 is available:

invoke versus call


Reactor pattern

  • direct contrast to a procedural pattern
  • procedural: everything is synchronous
    • each line completes before the next executes
  • reactor pattern: mostly synchronous
    • exception: event handlers
    • dispatcher calls event handlers
  • type of event-driven programming
    • event dispatcher is implicit
    • implicit "assembly line"
    • raw data comes in, dispatcher has routine(s) that match raw data
    • routine process it, leaves processed data
    • processed data matches other routines
  • normal events are incoming I/O events
    • keypresses, mouse clicks, network traffic
  • node makes use of synthetic events
    • generated by other code


  • node is "cooperatively multitasked"
  • multithreaded code is preemptively multitasked
  • sane multithreading involves locking
    • temporary exclusive ownership
    • mistakes lead to race conditions
  • node avoids race conditions while being highly concurrent
    • node is fast