Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wojteklu/watchdog
Class for logging excessive blocking on the main thread
https://github.com/wojteklu/watchdog
debugging ios macos mainthread swift
Last synced: 29 days ago
JSON representation
Class for logging excessive blocking on the main thread
- Host: GitHub
- URL: https://github.com/wojteklu/watchdog
- Owner: wojteklu
- License: mit
- Created: 2015-09-11T19:30:28.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2024-06-14T22:54:44.000Z (5 months ago)
- Last Synced: 2024-10-14T20:04:31.885Z (29 days ago)
- Topics: debugging, ios, macos, mainthread, swift
- Language: Swift
- Homepage:
- Size: 525 KB
- Stars: 1,856
- Watchers: 41
- Forks: 95
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Watchdog
[![Language](https://img.shields.io/badge/swift-4.2-orange.svg)](http://swift.org)
[![Build Status](https://img.shields.io/travis/wojteklu/Watchdog/master.svg?style=flat-square)](https://travis-ci.org/wojteklu/Watchdog) [![Platform support](https://img.shields.io/badge/platform-iOS%20%7C%20macOS%20%7C%20tvOS-lightgrey.svg?style=flat-square)](https://github.com/wojteklu/Watchdog/blob/master/LICENSE) [![CocoaPods Compatible](https://img.shields.io/cocoapods/v/Watchdog.svg?style=flat-square)](https://cocoapods.org/pods/Watchdog) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![License MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://github.com/wojteklu/Watchdog/blob/master/LICENSE)Class for logging excessive blocking on the main thread. It watches the main thread and checks if it doesnโt get blocked for more than defined threshold.
```
๐ฎ Main thread was blocked for 1.25s ๐ฎ
```You can also inspect which part of your code is blocking the main thread.
## Usage
Simply, just instantiate Watchdog with number of seconds that must pass to consider the main thread blocked. Additionally you can enable `strictMode` that stops the execution whenever the threshold is reached. This way, you can inspect which part of your code is blocking the main thread.
```Swift
let watchdog = Watchdog(threshold: 0.4, strictMode: true)
```Don't forget to retain Watchdog somewhere or it will get released when it goes out of scope.
## Requirements
* iOS 8.0+, tvOS 9.0+ or macOS 10.9+
* Swift 5.0## Installation
### [Carthage]
[Carthage]: https://github.com/Carthage/Carthage
Add the following to your Cartfile:
```
github "wojteklu/Watchdog"
```Then run `carthage update`.
Follow the current instructions in [Carthage's README][carthage-installation]
for up to date installation instructions.[carthage-installation]: https://github.com/Carthage/Carthage#adding-frameworks-to-an-application
### [CocoaPods]
[CocoaPods]: http://cocoapods.org
Add the following to your [Podfile](http://guides.cocoapods.org/using/the-podfile.html):
```ruby
pod 'Watchdog'
```You will also need to make sure you're opting into using frameworks:
```ruby
use_frameworks!
```### Manually
Manually add the file into your Xcode project. Slightly simpler, but updates are also manual.
## Author
Wojtek Lukaszuk [@wojteklu](http://twitter.com/wojteklu)
## License
Watchdog is available under the MIT license. See the LICENSE file for more info.