[wanproxy/wanproxy] 2ce885: Continue multithreading work.

Juli Mallett juli at clockworksquid.com
Sun Apr 19 19:33:04 PDT 2015


  Branch: refs/heads/master
  Home:   https://github.com/wanproxy/wanproxy
  Commit: 2ce885b9b8a2041046eb13edfb38d5f659416f86
      https://github.com/wanproxy/wanproxy/commit/2ce885b9b8a2041046eb13edfb38d5f659416f86
  Author: Juli Mallett <juli at clockworksquid.com>
  Date:   2015-04-19 (Sun, 19 Apr 2015)

  Changed paths:
    M TODO.MT
    M common/log.cc
    M common/thread/lock.h
    M event/callback.h
    R event/callback_handler.h
    M event/callback_thread.cc
    A event/destroy_thread.cc
    A event/destroy_thread.h
    R event/event_handler.h
    M event/event_system.h
    M event/example/Makefile
    R event/example/callback-handler-speed1/Makefile
    R event/example/callback-handler-speed1/callback-handler-speed1.cc
    M event/example/callback-manyspeed1/callback-manyspeed1.cc
    M event/example/timeout-test1/timeout-test1.cc
    M event/lib.mk
    M event/object_callback.h
    M event/speed_test.h
    M event/test/Makefile
    M event/test/dropbox1/dropbox1.cc
    M event/test/event-condition1/event-condition1.cc
    R event/test/event-handler1/Makefile
    R event/test/event-handler1/event-handler1.cc
    M event/typed_callback.h
    M event/typed_pair_callback.h
    M http/http_server.cc
    M http/http_server.h
    M http/http_server_pipe.cc
    M http/http_server_pipe.h
    M io/example/block-write1/block-write1.cc
    M io/example/zero-source1/zero-source1.cc
    M io/io_system_handle.cc
    M io/net/example/tcp-server-chargen/tcp-server-chargen.cc
    M io/net/tcp_client.cc
    M io/net/tcp_client.h
    M io/net/udp_client.cc
    M io/net/udp_client.h
    M io/pipe/pipe_link.cc
    M io/pipe/pipe_link.h
    M io/pipe/pipe_null.h
    M io/pipe/pipe_producer.cc
    M io/pipe/pipe_producer.h
    M io/pipe/pipe_producer_wrapper.h
    M io/pipe/pipe_simple_wrapper.h
    M io/pipe/pipe_splice.cc
    M io/pipe/pipe_splice.h
    M io/pipe/splice.cc
    M io/pipe/splice.h
    M io/pipe/splice_pair.cc
    M io/pipe/splice_pair.h
    M io/pipe/test/pipe-null1/pipe-null1.cc
    M io/pipe/test/pipe-wrapper1/pipe-wrapper1.cc
    M io/socket/simple_server.h
    M io/socket/socket.cc
    M io/socket/socket_handle.cc
    M io/socket/socket_handle.h
    M io/socket/socket_uinet.cc
    M io/socket/test/socket-accept-connect1/socket-accept-connect1.cc
    M programs/wanproxy/proxy_connector.cc
    M programs/wanproxy/proxy_connector.h
    M programs/wanproxy/proxy_socks_connection.cc
    M programs/wanproxy/proxy_socks_connection.h
    M programs/wanproxy/ssh_proxy_connector.cc
    M programs/wanproxy/ssh_proxy_connector.h
    M programs/wanproxy/ssh_stream.cc
    M programs/wanproxy/ssh_stream.h
    M programs/wanproxy/wanproxy_codec_pipe_pair.cc
    M ssh/ssh_algorithm_negotiation.cc
    M ssh/ssh_key_exchange.cc
    M ssh/ssh_transport_pipe.cc
    M ssh/ssh_transport_pipe.h
    M xcodec/xcodec_pipe_pair.cc
    M xcodec/xcodec_pipe_pair.h
    M zlib/deflate_pipe.cc
    M zlib/deflate_pipe.h
    M zlib/inflate_pipe.cc
    M zlib/inflate_pipe.h

  Log Message:
  -----------
  Continue multithreading work.

- Add a Lock to every callback.

- Interlock as long-intended in CallbackThread.

- Improve the callback-manyspeed1 example's ability to produce very
  degenerate workloads that stress threads and mutexes.

- Make WANProxy itself build with the new locking scheme for
  callbacks.  Many examples and tests do not build.

- Add locking facilities to pipes generally.

- Provide locking for XCodecPipePair itself since it shares state
  between the two halves of the pipe pair.

- Add a DestroyThread, to defer locked deletes.

- Lock the log when logging.




More information about the wanproxy mailing list