[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