diff --git a/modules/api_rest_controller.go b/modules/api_rest_controller.go index 9259b869..61ca7c57 100644 --- a/modules/api_rest_controller.go +++ b/modules/api_rest_controller.go @@ -31,7 +31,7 @@ func RunRestCommand(c *gin.Context) { func ShowRestEvents(c *gin.Context) { var err error - events := session.I.Events.Events() + events := session.I.Events.Sorted() nmax := len(events) n := nmax diff --git a/modules/events_stream.go b/modules/events_stream.go index 76ef5e30..e49df5d1 100644 --- a/modules/events_stream.go +++ b/modules/events_stream.go @@ -115,7 +115,7 @@ func (s *EventsStream) Start() error { } func (s *EventsStream) Show() error { - for _, e := range s.Session.Events.Events() { + for _, e := range s.Session.Events.Sorted() { s.dumpEvent(e) } diff --git a/session/events.go b/session/events.go index 00ef23a5..f3270ff7 100644 --- a/session/events.go +++ b/session/events.go @@ -3,6 +3,7 @@ package session import ( "fmt" "os" + "sort" "sync" "time" @@ -96,3 +97,14 @@ func (p *EventPool) Events() []Event { defer p.Unlock() return p.events } + +func (p *EventPool) Sorted() []Event { + p.Lock() + defer p.Unlock() + + sort.Slice(p.events, func(i, j int) bool { + return p.events[i].Time.Before(p.events[j].Time) + }) + + return p.events +}