From cec5fd06724ac169c69c30996bbcda976ed64df5 Mon Sep 17 00:00:00 2001 From: Peter Stuifzand Date: Wed, 3 Oct 2018 18:54:23 +0200 Subject: [PATCH] Simpleify ChannelsCreate --- cmd/eksterd/memory.go | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/cmd/eksterd/memory.go b/cmd/eksterd/memory.go index 834ce7e..b8d44be 100644 --- a/cmd/eksterd/memory.go +++ b/cmd/eksterd/memory.go @@ -203,25 +203,36 @@ func (b *memoryBackend) ChannelsGetList() ([]microsub.Channel, error) { return channels, nil } -// ChannelsCreate creates a channels -func (b *memoryBackend) ChannelsCreate(name string) (microsub.Channel, error) { - defer b.save() - - conn := pool.Get() - defer conn.Close() - - uid := fmt.Sprintf("%04d", b.NextUid) +func (b *memoryBackend) createChannel(name string) microsub.Channel { + uid := fmt.Sprintf("%012d", b.NextUid) channel := microsub.Channel{ UID: uid, Name: name, } + return channel +} +func (b *memoryBackend) setChannel(channel microsub.Channel) { b.lock.Lock() + defer b.lock.Unlock() b.Channels[channel.UID] = channel b.Feeds[channel.UID] = []microsub.Feed{} b.NextUid++ - b.lock.Unlock() +} +// ChannelsCreate creates a channels +func (b *memoryBackend) ChannelsCreate(name string) (microsub.Channel, error) { + defer b.save() + + channel := b.createChannel(name) + b.setChannel(channel) + + b.setChannel(channel) + + conn := pool.Get() + defer conn.Close() + + uid := channel.UID conn.Do("SADD", "channels", uid) conn.Do("SETNX", "channel_sortorder_"+uid, 99999)