- 17 Oct, 2014 18 commits
- 
- 
Felix Lange authored
- 
Felix Lange authoredRather 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. 
- 
Felix Lange authoredMessages 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. 
- 
Felix Lange authoredThis test fails because the log message is formatted twice. 
- 
Felix Lange authored
- 
Felix Lange authoredThis ensures that examples will actually compile. 
- 
Felix Lange authored
- 
Felix Lange authored
- 
Felix Lange authored
- 
Felix Lange authoredIt's now safe for concurrent access. Output checking looks better. 
- 
Felix Lange authored
- 
Felix Lange authored
- 
Felix Lange authored
- 
Felix Lange authored
- 
Felix Lange authoredThis also fixes a deadlock in the tests. 
- 
obscuren authored
- 
obscuren authored
- 
Jeffrey Wilcke authoredBlocking event package 
 
- 
- 16 Oct, 2014 16 commits
- 
- 
obscuren authored
- 
Felix Lange authored
- 
Felix Lange authored
- 
Felix Lange authored
- 
Felix Lange authored
- 
Felix Lange authored
- 
Felix Lange authored
- 
Felix Lange authored
- 
Felix Lange authored
- 
obscuren authored
- 
Felix Lange authored
- 
obscuren authored
- 
obscuren authored
- 
obscuren authored
- 
obscuren authored
- 
obscuren authoredIf 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. 
 
- 
- 15 Oct, 2014 1 commit
- 
- 
obscuren authored
 
- 
- 14 Oct, 2014 5 commits