Skip to content

Commit

Permalink
add AsyncFutureBeaconLogger [feenkcom/gtoolkit#3778]
Browse files Browse the repository at this point in the history
  • Loading branch information
JurajKubelka committed May 16, 2024
1 parent 38f2bdd commit 55032de
Show file tree
Hide file tree
Showing 5 changed files with 73 additions and 2 deletions.
10 changes: 10 additions & 0 deletions src/GToolkit-Extensions/AsyncFutureCompositeLogger.extension.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Extension { #name : #AsyncFutureCompositeLogger }

{ #category : #'*GToolkit-Extensions' }
AsyncFutureCompositeLogger >> gtLoggersFor: aView [
<gtView>
^ aView columnedList
title: 'Loggers';
items: [ self loggers ];
column: 'Name' text: #yourself
]
9 changes: 7 additions & 2 deletions src/GToolkit-Extensions/AsyncFutureThreadPool.extension.st
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ AsyncFutureThreadPool >> gtEnableTelemetryActionFor: anAction [
{ #category : #'*GToolkit-Extensions' }
AsyncFutureThreadPool >> gtWorkersFor: aView [
<gtView>
| aTelemetry |
| aTelemetry aMemoryLogger |

aTelemetry := self telemetryDo: #yourself ifNone: nil.

Expand Down Expand Up @@ -77,5 +77,10 @@ AsyncFutureThreadPool >> gtWorkersFor: aView [
ifNone: [ self telemetry: (aTelemetry := AsyncFutureThreadPoolTelemetry new) ] ];
actionButtonIcon: BrGlamorousVectorIcons cancel
tooltip: 'Reset telemetry'
action: [ self telemetryDo: #reset ]
action: [ self telemetryDo: #reset ];
actionButtonIcon: BrGlamorousVectorIcons right
tooltip: 'Monitor pending tasks'
action: [ :aButton |
AsyncFutureThreadPoolWorker ensureDefaultLogger: AsyncFutureBeaconLogger new.
aButton phlow spawnObject: (aMemoryLogger ifNil: [ aMemoryLogger := MemoryLogger new startFor: AsyncFutureSignal]) ]
]
14 changes: 14 additions & 0 deletions src/GToolkit-Monitor/AsyncFutureBeaconLogger.class.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Class {
#name : #AsyncFutureBeaconLogger,
#superclass : #Object,
#traits : 'TAsyncFutureLogger',
#classTraits : 'TAsyncFutureLogger classTrait',
#category : #'GToolkit-Monitor-Future Workers'
}

{ #category : #logging }
AsyncFutureBeaconLogger >> pendingTask: aPendingTask [
AsyncFuturePendingTaskSignal new
pendingTask: aPendingTask;
emit
]
37 changes: 37 additions & 0 deletions src/GToolkit-Monitor/AsyncFuturePendingTaskSignal.class.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
Class {
#name : #AsyncFuturePendingTaskSignal,
#superclass : #AsyncFutureSignal,
#instVars : [
'pendingTask'
],
#category : #'GToolkit-Monitor-Future Workers'
}

{ #category : #accessing }
AsyncFuturePendingTaskSignal >> gtCompositionFor: aView [
<gtView>
^ aView forward
title: 'Pending task';
object: [ self pendingTask ];
view: #gtCompositionFor:
]

{ #category : #accessing }
AsyncFuturePendingTaskSignal >> pendingTask [
<return: #AsyncFutureThreadPoolPendingTask>
^ pendingTask
]

{ #category : #accessing }
AsyncFuturePendingTaskSignal >> pendingTask: aTask [
pendingTask := aTask
]

{ #category : #accessing }
AsyncFuturePendingTaskSignal >> printOneLineContentsOn: stream [
pendingTask ifNil: [ ^ self ].
timestamp ifNil: [ ^ self ].

stream nextPutAll: 'After '.
(timestamp - pendingTask sinceTime) printHumanReadableOn: stream
]
5 changes: 5 additions & 0 deletions src/GToolkit-Monitor/AsyncFutureSignal.class.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Class {
#name : #AsyncFutureSignal,
#superclass : #BeaconSignal,
#category : #'GToolkit-Monitor-Future Workers'
}

0 comments on commit 55032de

Please sign in to comment.