Commit Graph

1631 Commits

Author SHA1 Message Date
Felix Lange
fd9b03a431 ethlog: fix concurrency
Rather than spawning a new goroutine for each message,
run each log system in a dedicated goroutine.

Ensure that logging is still asynchronous by using a per-system buffer
(currently 500 messages). If it overflows all logging will hang,
but that's better than spawning indefinitely many goroutines.
2014-10-17 17:23:29 +02:00
Felix Lange
c090a77f1c ethlog: simplify LogSystem interface
Messages are formatted by generic part, so the log system doesn't need
to provide formatting. This fixes the test from the previous commit.

As a small bonus, log systems now have access to the level of
the message. This could be used to provide colored logging in the
future.
2014-10-17 17:23:29 +02:00
Felix Lange
50f5ba5b0c ethlog: add test for '%' in log message
This test fails because the log message is formatted twice.
2014-10-17 17:23:29 +02:00
Felix Lange
cbd785cfe8 ethvm, tests/*: use log level constants 2014-10-17 17:23:28 +02:00
Felix Lange
0165c18330 ethlog: use Godoc for code examples in documentation
This ensures that examples will actually compile.
2014-10-17 17:20:44 +02:00
Felix Lange
e0f93c74c5 ethlog: add Godoc documentation, remove README 2014-10-17 17:20:44 +02:00
Felix Lange
a6265cb49a ethlog: verify that Flush is blocking in TestLoggerFlush 2014-10-17 17:20:44 +02:00
Felix Lange
793baf060a ethlog: don't buffer output in TestConcurrentAddSystem 2014-10-17 17:20:44 +02:00
Felix Lange
ec132749aa ethlog: improve TestLogSystem
It's now safe for concurrent access.
Output checking looks better.
2014-10-17 17:20:44 +02:00
Felix Lange
45d1052229 ethlog: fix StdLogSystem data race on level 2014-10-17 17:20:44 +02:00
Felix Lange
d5a7ba1626 ethlog: add test that adds log systems concurrently 2014-10-17 17:20:44 +02:00
Felix Lange
3b1296077b ethlog: Reset before each test 2014-10-17 17:20:43 +02:00
Felix Lange
dac128a029 ethlog: fix test compilation error 2014-10-17 17:20:43 +02:00
Felix Lange
4e95cecfb9 ethlog: improve dispatch concurrency
This also fixes a deadlock in the tests.
2014-10-17 17:20:43 +02:00
obscuren
e183880d8b arith test 2014-10-17 17:11:45 +02:00
obscuren
d7736a7bbb Quick dirty peer update 2014-10-17 17:11:34 +02:00
Jeffrey Wilcke
df2b70853f Merge pull request #58 from fjl/feature/event
Blocking event package
2014-10-17 17:10:34 +02:00
obscuren
3b70985284 added eth tester 2014-10-16 21:34:59 +02:00
Felix Lange
fa84e50ddb event: panic for duplicate type 2014-10-16 18:59:28 +02:00
Felix Lange
ade980912d ethreact: remove package 2014-10-16 18:51:21 +02:00
Felix Lange
28570ef109 eventer: remove package 2014-10-16 18:51:21 +02:00
Felix Lange
20cdb73862 ethchain: fix tests 2014-10-16 18:51:21 +02:00
Felix Lange
36cdab2068 all: use (blocking) event package instead of ethreact 2014-10-16 18:50:48 +02:00
Felix Lange
6906904896 event: make TypeMux zero value ready to use 2014-10-16 18:50:48 +02:00
Felix Lange
10bbf265b2 event: make Unsubscribe idempotent 2014-10-16 18:50:48 +02:00
Felix Lange
dac4a8f113 event: add some documentation 2014-10-16 18:50:48 +02:00
obscuren
93fcabd251 Fixed most of the tests 2014-10-16 18:27:05 +02:00
Felix Lange
f5b8775bed event: new package for event multiplexer 2014-10-16 18:14:35 +02:00
obscuren
bb5038699e Corrected package .... 2014-10-16 13:41:44 +02:00
obscuren
65cdb3436e Updated tests 2014-10-16 13:40:46 +02:00
obscuren
86f789333a Moved state reset to defered function 2014-10-16 13:39:30 +02:00
obscuren
febec5ca4a Switch EXT* codes 2014-10-16 13:39:11 +02:00
obscuren
70f7a0be11 Use the state instead of the state object directly.
If a state gets reset and you still hold a pointer to the previous,
incorrect, state object you'll operate on the wrong object. Using the
state to set/get objects and attributes you won't have this problem
since the state will always have the correct object.
2014-10-16 13:38:21 +02:00
obscuren
311c6f8a3f Fixed remote Arithmetic tests 2014-10-15 17:12:26 +02:00
obscuren
266d212094 Working on test suite 2014-10-15 00:41:00 +02:00
obscuren
3d177be73e Couple of minor issues fixed
* CALLVALUE pushed incorrect value to the stack
* Set execution model to closure
2014-10-15 00:40:41 +02:00
obscuren
7ca7938d8e Removed old installer script 2014-10-14 15:31:25 +02:00
obscuren
f55e39cf1a Tests for native function calling 2014-10-14 13:37:26 +02:00
obscuren
393a92811b Changed VM Test code 2014-10-14 12:21:46 +02:00
obscuren
c5bd32b0ad Refactored VM to two separate VMs; std & debug
Standard VM should be about 10x faster than the debug VM. Some error
checking has been removed, all of the log statements and therefor quite
some unnecessary if-statements.
2014-10-14 11:48:52 +02:00
obscuren
2e894b668a Max callstack 2014-10-11 00:41:37 +02:00
obscuren
cb845b9bc8 Implemented AR PoW 2014-10-10 22:44:20 +02:00
obscuren
56843ca0fc Added some methods to comply to the PoW block interface 2014-10-10 22:42:37 +02:00
obscuren
e02c0fa808 Added generic big to 256 method. Implemented new iterator 2014-10-10 17:00:06 +02:00
obscuren
9b494c6869 Merge branch 'develop' of github.com-obscure:ethereum/eth-go into develop 2014-10-10 16:58:26 +02:00
Jeffrey Wilcke
3db6a8e92d Merge pull request #57 from fjl/feature/raceless-ethereum-filters
Fix filter map race
2014-10-10 16:57:54 +02:00
Jeffrey Wilcke
6fec5bd32e Merge pull request #56 from fjl/feature/raceless-eventer
Fix Eventer race
2014-10-10 16:57:50 +02:00
obscuren
6877660fe2 Implemented new iterator 2014-10-10 16:56:28 +02:00
Felix Lange
e83a999039 eth: fix filter map data race
This commit also documents (but doesn't enforce) that filters
are immutable while they're installed. This required a minor API
change.
2014-10-08 19:04:58 +02:00
Felix Lange
44674cb96c eventer: fix data race 2014-10-08 16:31:08 +02:00