Vatsal Manot

Page 2


Context capturing C function pointers in Swift.

Take the following code:

func foo() {
    let bar = NSObject()

    let f: (@convention(c) () -> ()) = {
        print(bar)
    }
}

This will not compile. You will instead be presented with the following error:

error: a C function pointer cannot be formed from a closure that captures context

While you are unlikely to ever encounter this error in typical iOS development, it may arise as the result of, say, an attempt to interface with a low-level C library/framework. In my case, I was trying to construct a parameter for a low-level POSIX function (pthread_create), which only accepted a C function pointer.

There is a (dirty) workaround:

import ObjectiveC
import Swift

func cFunction(_ block: (@escaping @convention(block) () -> ()))
    -> (@convention(c) () -> ()) {
    return unsafeBitCast(
        imp_implementationWithBlock(block),
        to: (@convention(c) () -> ()).self
...

Continue reading →


Birthday Wishes for a Marshmallow

When you’re sad
And feeling blue
Just remember
That I love you.

When you’re happy, well..
Tell me about you,
Tell me how happy you are,
I’m happy too.

View →


Losing My Touch

I’d hate to think that I’m losing my touch,
With reality, with thoughts—it’s just too much.
The dynamics, to me, are quite unclear
Who, or what, am I supposed to be here?

I hate these emotions that I suddenly feel
I’m aware of it now, I’m not made out of steel.
More oft than naught I’ve this particular fear
I no longer enthrall, I’m no longer dear.

Tears don’t flow, I feel like a fool
I just load the memories and rewind the spool.
Here is your mission, here is your deal
When in doubt, just play back the reel.

I hate this feeling of being stuck in a rut,
Life’s just a miserable punch to the gut,
I’m consumed as such, by this thought of a wall,
The view is opaque, the puzzle’s a scrawl.

Things aren’t happening. Things are stuck.
I’m just flailing my arms, I’m running amuck.
I’m tightroping a thread, I’m stuck in a tyre;

My head’s in a bag
The bag is on fire.

Continue reading →