+internal class __DispatchData : DispatchObject {
+ internal let __wrapped:dispatch_data_t
+
+ final internal override func wrapped() -> dispatch_object_t {
+ return unsafeBitCast(__wrapped, to: dispatch_object_t.self)
+ }
+
+ internal init(data:dispatch_data_t, owned:Bool) {
+ __wrapped = data
+ if !owned {
+ _swift_dispatch_retain(unsafeBitCast(data, to: dispatch_object_t.self))
+ }
+ }
+
+ deinit {
+ _swift_dispatch_release(wrapped())
+ }
+}
+