func ERem(c stypes.Client, cmd *types.Action) (interface{}, error) {
	key := cmd.StorageKey
	cidi := c.ClientId().Uint64()
	ekgLock.Lock()
	defer ekgLock.Unlock()

	// If the client isn't on the ekg, don't bother
	clientIdsM, ok := ekgKeyToClientIdsNames[key]
	if !ok {
		return OK, nil
	}

	if len(clientIdsM) == 1 {
		delete(ekgKeyToClientIdsNames, key)
	} else {
		delete(clientIdsM, cidi)
	}

	keysM := ekgClientIdToKeysNames[cidi]
	if len(keysM) == 1 {
		delete(ekgClientIdToKeysNames, cidi)
	} else {
		delete(keysM, key)
	}

	return OK, nil
}
// ERem removes the client from an ekg's set of things it's watching, and
// removes the ekg's information from the client's set of ekgs its hooked up to
ERem removes the client from an ekg's set of things it's watching, and
removes the ekg's information from the client's set of ekgs its hooked up to
// ERem removes the client from an ekg ' s set of things it ' s watching and // removes the ekg ' s information from the client ' s set of ekgs its hooked up to
func ERem(c stypes.Client, cmd *types.Action) (interface{}, error) {
	key := cmd.StorageKey
	cidi := c.ClientId().Uint64()
	ekgLock.Lock()
	defer ekgLock.Unlock()
	clientIdsM, ok := ekgKeyToClientIdsNames[key]
	if !ok {
		return OK, nil
	}
	if len(clientIdsM) == 1 {
		delete(ekgKeyToClientIdsNames, key)
	} else {
		delete(clientIdsM, cidi)
	}
	keysM := ekgClientIdToKeysNames[cidi]
	if len(keysM) == 1 {
		delete(ekgClientIdToKeysNames, cidi)
	} else {
		delete(keysM, key)
	}
	return OK, nil
}
func ERem ( c stypes . Client , cmd * types . Action ) ( interface { } , error ) { key := cmd . StorageKey cidi := c . ClientId ( ) . Uint64 ( ) ekgLock . Lock ( ) defer ekgLock . Unlock ( ) clientIdsM , ok := ekgKeyToClientIdsNames [ key ] if ! ok { return OK , nil } if len ( clientIdsM ) == 1 { delete ( ekgKeyToClientIdsNames , key ) } else { delete ( clientIdsM , cidi ) } keysM := ekgClientIdToKeysNames [ cidi ] if len ( keysM ) == 1 { delete ( ekgClientIdToKeysNames , cidi ) } else { delete ( keysM , key ) } return OK , nil }
ERem removes the client from an ekg's set of things it's watching, and
removes the ekg's information from the client's set of ekgs its hooked up to
ERem removes the client from an ekg ' s set of things it ' s watching and removes the ekg ' s information from the client ' s set of ekgs its hooked up to
// If the client isn't on the ekg, don't bother