Properly wait 1 second between runs of adb b2g-info

Summary: This slows down the phone less. In the future, it'd be nice to get timestamp on X axis.

Reviewed By: passy

Differential Revision: D19097154

fbshipit-source-id: e145f1b911dec368a6bb7de32790d6280c696eda
This commit is contained in:
Alexander Putilin
2020-01-13 03:41:22 -08:00
committed by Facebook Github Bot
parent 7af8e2d5a3
commit 294a400428

View File

@@ -9,7 +9,7 @@
import React from 'react'; import React from 'react';
import {FlipperDevicePlugin, Device, KaiOSDevice} from 'flipper'; import {FlipperDevicePlugin, Device, KaiOSDevice, sleep} from 'flipper';
import {FlexColumn, Button, Toolbar, Panel} from 'flipper'; import {FlexColumn, Button, Toolbar, Panel} from 'flipper';
@@ -74,33 +74,36 @@ export default class KaiOSGraphs extends FlipperDevicePlugin<State, any, any> {
monitoring: false, monitoring: false,
}; };
intervalID: NodeJS.Timer | null = null;
static supportsDevice(device: Device) { static supportsDevice(device: Device) {
return device instanceof KaiOSDevice; return device instanceof KaiOSDevice;
} }
onStartMonitor = () => { teardown() {
if (this.intervalID) { this.onStopMonitor();
return;
} }
this.intervalID = setInterval(this.updateFreeMem, 1000); onStartMonitor = () => {
this.setState(
this.setState({ {
monitoring: true, monitoring: true,
}); },
() => {
// no await because monitoring runs in the background
this.monitorInBackground();
},
);
}; };
onStopMonitor = () => { onStopMonitor = () => {
if (!this.intervalID) {
return;
} else {
clearInterval(this.intervalID);
this.intervalID = null;
this.setState({ this.setState({
monitoring: false, monitoring: false,
}); });
};
monitorInBackground = async () => {
while (this.state.monitoring) {
await this.updateFreeMem();
await sleep(1000);
} }
}; };