@@ -999,6 +999,53 @@ export function showProvidedTracks(
999
999
} ;
1000
1000
}
1001
1001
1002
+ export function showProvidedThreads (
1003
+ threadsToShow : Set < ThreadIndex >
1004
+ ) : ThunkAction < void > {
1005
+ return ( dispatch , getState ) => {
1006
+ const globalTracks = getGlobalTracks ( getState ( ) ) ;
1007
+ const localTracksByPid = getLocalTracksByPid ( getState ( ) ) ;
1008
+
1009
+ const globalTracksToShow : Set < TrackIndex > = new Set();
1010
+ const localTracksByPidToShow: Map< Pid , Set < TrackIndex > > = new Map ( ) ;
1011
+
1012
+ for ( const [ globalTrackIndex , globalTrack ] of globalTracks . entries ( ) ) {
1013
+ if ( globalTrack . type !== 'process' ) {
1014
+ continue ;
1015
+ }
1016
+ const { mainThreadIndex, pid } = globalTrack ;
1017
+ if ( mainThreadIndex !== null && threadsToShow . has ( mainThreadIndex ) ) {
1018
+ globalTracksToShow . add ( globalTrackIndex ) ;
1019
+ }
1020
+ const localTracks = localTracksByPid . get ( pid ) ;
1021
+ if ( localTracks === undefined ) {
1022
+ continue ;
1023
+ }
1024
+
1025
+ for ( const [ localTrackIndex , localTrack ] of localTracks . entries ( ) ) {
1026
+ if ( localTrack . type !== 'thread' ) {
1027
+ continue ;
1028
+ }
1029
+ if ( threadsToShow . has ( localTrack . threadIndex ) ) {
1030
+ const localTracksToShow = localTracksByPidToShow . get ( pid ) ;
1031
+ if ( localTracksToShow === undefined ) {
1032
+ localTracksByPidToShow . set ( pid , new Set ( [ localTrackIndex ] ) ) ;
1033
+ } else {
1034
+ localTracksToShow . add ( localTrackIndex ) ;
1035
+ }
1036
+ globalTracksToShow . add ( globalTrackIndex ) ;
1037
+ }
1038
+ }
1039
+ }
1040
+
1041
+ dispatch ( {
1042
+ type : 'SHOW_PROVIDED_TRACKS' ,
1043
+ globalTracksToShow,
1044
+ localTracksByPidToShow,
1045
+ } ) ;
1046
+ } ;
1047
+ }
1048
+
1002
1049
/**
1003
1050
* This action makes the tracks that are provided hidden.
1004
1051
*/
0 commit comments