---
title: DispatchSource
framework: dispatch
role: symbol
role_heading: Class
path: dispatch/dispatchsource
---

# DispatchSource

An object that coordinates the processing of specific low-level system events, such as file-system events, timers, and UNIX signals.

## Declaration

```swift
class DispatchSource
```

## Overview

Overview Use the methods of this class to construct new dispatch sources of the appropriate types.

## Topics

### Managing Common Dispatch Source Properties

- [DispatchSourceProtocol](dispatch/dispatchsourceprotocol.md)

### Creating a Timer Source

- [makeTimerSource(flags:queue:)](dispatch/dispatchsource/maketimersource(flags:queue:).md)
- [DispatchSourceTimer](dispatch/dispatchsourcetimer.md)
- [DispatchSource.TimerFlags](dispatch/dispatchsource/timerflags.md)

### Creating a File System Source

- [makeReadSource(fileDescriptor:queue:)](dispatch/dispatchsource/makereadsource(filedescriptor:queue:).md)
- [makeWriteSource(fileDescriptor:queue:)](dispatch/dispatchsource/makewritesource(filedescriptor:queue:).md)
- [makeFileSystemObjectSource(fileDescriptor:eventMask:queue:)](dispatch/dispatchsource/makefilesystemobjectsource(filedescriptor:eventmask:queue:).md)
- [DispatchSourceRead](dispatch/dispatchsourceread.md)
- [DispatchSourceWrite](dispatch/dispatchsourcewrite.md)
- [DispatchSourceFileSystemObject](dispatch/dispatchsourcefilesystemobject.md)
- [DispatchSource.FileSystemEvent](dispatch/dispatchsource/filesystemevent.md)

### Creating a Process Source

- [makeProcessSource(identifier:eventMask:queue:)](dispatch/dispatchsource/makeprocesssource(identifier:eventmask:queue:).md)
- [DispatchSourceProcess](dispatch/dispatchsourceprocess.md)
- [DispatchSource.ProcessEvent](dispatch/dispatchsource/processevent.md)

### Creating a Memory Pressure Source

- [makeMemoryPressureSource(eventMask:queue:)](dispatch/dispatchsource/makememorypressuresource(eventmask:queue:).md)
- [DispatchSourceMemoryPressure](dispatch/dispatchsourcememorypressure.md)
- [DispatchSource.MemoryPressureEvent](dispatch/dispatchsource/memorypressureevent.md)

### Creating a Signal Source

- [makeSignalSource(signal:queue:)](dispatch/dispatchsource/makesignalsource(signal:queue:).md)
- [DispatchSourceSignal](dispatch/dispatchsourcesignal.md)

### Creating a Mach Port Source

- [makeMachReceiveSource(port:queue:)](dispatch/dispatchsource/makemachreceivesource(port:queue:).md)
- [makeMachSendSource(port:eventMask:queue:)](dispatch/dispatchsource/makemachsendsource(port:eventmask:queue:).md)
- [DispatchSourceMachReceive](dispatch/dispatchsourcemachreceive.md)
- [DispatchSourceMachSend](dispatch/dispatchsourcemachsend.md)
- [DispatchSource.MachSendEvent](dispatch/dispatchsource/machsendevent.md)

### Creating a Custom Source

- [makeUserDataAddSource(queue:)](dispatch/dispatchsource/makeuserdataaddsource(queue:).md)
- [makeUserDataOrSource(queue:)](dispatch/dispatchsource/makeuserdataorsource(queue:).md)
- [makeUserDataReplaceSource(queue:)](dispatch/dispatchsource/makeuserdatareplacesource(queue:).md)
- [DispatchSourceUserDataAdd](dispatch/dispatchsourceuserdataadd.md)
- [DispatchSourceUserDataOr](dispatch/dispatchsourceuserdataor.md)
- [DispatchSourceUserDataReplace](dispatch/dispatchsourceuserdatareplace.md)

## Relationships

### Inherits From

- [DispatchObject](dispatch/dispatchobject.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [Copyable](swift/copyable.md)
- [DispatchSourceFileSystemObject](dispatch/dispatchsourcefilesystemobject.md)
- [DispatchSourceMachReceive](dispatch/dispatchsourcemachreceive.md)
- [DispatchSourceMachSend](dispatch/dispatchsourcemachsend.md)
- [DispatchSourceMemoryPressure](dispatch/dispatchsourcememorypressure.md)
- [DispatchSourceProcess](dispatch/dispatchsourceprocess.md)
- [DispatchSourceProtocol](dispatch/dispatchsourceprotocol.md)
- [DispatchSourceRead](dispatch/dispatchsourceread.md)
- [DispatchSourceSignal](dispatch/dispatchsourcesignal.md)
- [DispatchSourceTimer](dispatch/dispatchsourcetimer.md)
- [DispatchSourceUserDataAdd](dispatch/dispatchsourceuserdataadd.md)
- [DispatchSourceUserDataOr](dispatch/dispatchsourceuserdataor.md)
- [DispatchSourceUserDataReplace](dispatch/dispatchsourceuserdatareplace.md)
- [DispatchSourceWrite](dispatch/dispatchsourcewrite.md)
- [Equatable](swift/equatable.md)
- [Escapable](swift/escapable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### System Event Monitoring

- [Dispatch Source](dispatch/dispatch-source.md)
- [DispatchIO](dispatch/dispatchio.md)
- [DispatchData](dispatch/dispatchdata.md)
- [DispatchDataIterator](dispatch/dispatchdataiterator.md)
- [Dispatch I/O](dispatch/dispatch-i-o.md)
- [Dispatch Data](dispatch/dispatch-data.md)
- [DispatchSourceProtocol](dispatch/dispatchsourceprotocol.md)
