Skip to content

Instantly share code, notes, and snippets.

View allengeorge's full-sized avatar

Allen George allengeorge

  • New York, NY, USA
View GitHub Profile
type MessageBase struct {
val1, val2 uint64
}
type Message1 struct {
MessageBase
}
func (m *MessageBase) String() string {
return fmt.Sprintf("%s{Val1: %d Val2: %d}", ???, m.val1, m.val2)
func convertIntoSystemMessage(jsonMap map[string]interface{}) (
msg SystemMessage, err os.Error) {
// grab name from message
switch name {
case "LoginMessage":
...
case "LogoutMessage":
...
@allengeorge
allengeorge / interfaces.go
Created December 5, 2010 17:00
Go Interface Issue
import "time"
type AnInterface interface {
GetRequestId() uint64
}
type MessageBase struct {
RequestId uint64
}
@allengeorge
allengeorge / gist:3073492
Created July 9, 2012 00:00
Non-Blocking Channel Write After Consumer Check
// Writes data to a channel without blocking if and only if the consumer is still alive
// The consumer provides a stop channel; if this channel is closed it is interpreted that the consumer no longer wants the data
// If data is written then this function returns true
func Write(data interface{}, stopChan chan interface{}, sendChan chan interface{}) (written bool, err error) {
select {
case _, ok := <-stopChan:
if !ok {
err = errors.New("consumer terminated")
log.Printf("chwr: %s", err.Error())
}
@allengeorge
allengeorge / build.gradle
Created November 6, 2013 17:02
Hierarchical Gradle Project Definition That Ignores Aggregate Directories
subprojects {
if (name == 'samples') {
return
}
apply plugin: 'java'
apply plugin: 'maven-publish'
// rest of build script follows...
}
@allengeorge
allengeorge / gradle publish output
Last active December 27, 2015 18:59
`gradle publish` output
:libraft-agent:generatePomFileForMavenJavaPublication
:libraft-core:compileJava UP-TO-DATE
:libraft-core:processResources UP-TO-DATE
:libraft-core:classes UP-TO-DATE
:libraft-core:jar UP-TO-DATE
:libraft-agent:compileJava UP-TO-DATE
:libraft-agent:processResources UP-TO-DATE
:libraft-agent:classes UP-TO-DATE
:libraft-agent:jar UP-TO-DATE
:libraft-core:javadoc UP-TO-DATE
@allengeorge
allengeorge / kayvee_0.1.1_hang_stack
Created February 14, 2014 16:52
Shutdown Hang in KayVee-0.1.1
2014-02-14 16:38:58
Full thread dump OpenJDK 64-Bit Server VM (20.0-b12 mixed mode):
"SIGTERM handler" daemon prio=10 tid=0x00007f4508118000 nid=0x1379 waiting for monitor entry [0x00007f44e72f2000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.Shutdown.exit(Shutdown.java:195)
- waiting to lock <0x00000000f5be1fe0> (a java.lang.Class for java.lang.Shutdown)
at java.lang.Terminator$1.handle(Terminator.java:52)
at sun.misc.Signal$1.run(Signal.java:212)
at java.lang.Thread.run(Thread.java:701)
@allengeorge
allengeorge / gist:9065393
Created February 18, 2014 05:58
Deadlock on KayVee Shutdown
2014-02-18 05:51:15
Full thread dump OpenJDK 64-Bit Server VM (20.0-b12 mixed mode):
"SIGINT handler" daemon prio=10 tid=0x00007fe1fc13a000 nid=0x4d35 waiting for monitor entry [0x00007fe1e09c9000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.Shutdown.exit(Shutdown.java:195)
- waiting to lock <0x00000000f5be2358> (a java.lang.Class for java.lang.Shutdown)
at java.lang.Terminator$1.handle(Terminator.java:52)
at sun.misc.Signal$1.run(Signal.java:212)
at java.lang.Thread.run(Thread.java:701)
@allengeorge
allengeorge / structure.rs
Created September 1, 2016 05:17
Rust Submodule Structure
```
src
+-- main.rs
+-- mylib/
+-- mod.rs
+-- errors.rs
+-- types.rs
```
extern crate serde_codegen;
use std::env;
use std::path::Path;
fn main() {
let out_dir = env::var_os("OUT_DIR").unwrap();
let src = Path::new("src/serde_types.in.rs");
let dst = Path::new(&out_dir).join("serde_types.rs");