# Macro for optional threading not working

**URL:** https://discourse.julialang.org/t/macro-for-optional-threading-not-working/40491
**Category:** New to Julia
**Created:** [May 30, 2020, 10:55pm UTC](https://discourse.julialang.org/t/macro-for-optional-threading-not-working/40491 "2020-05-30T22:55:59Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![francesco.alemanno](https://avatars.discourse-cdn.com/v4/letter/f/e8c25b/32.png) [@francesco.alemanno](https://discourse.julialang.org/u/francesco.alemanno)
#### Post date: [May 30, 2020, 10:55pm UTC](https://discourse.julialang.org/t/macro-for-optional-threading-not-working/40491/1 "2020-05-30T22:55:59Z")

</div>

```julia
macro optthreads(switch,code)
    :(
    if $(esc(switch))
        esc(:(Threads.@threads $$code))
    else
        $(esc(code))
    end
    )
end

function test(par)
    @optthreads par for i in 1:80
        print(Threads.threadid())
    end
end

test(true)

```

i cannot seem to figure how to correctly nest a macro inside a macro, can anybody please help?

---

<div class="post-metadata">

### Author: ![favba](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/favba/32/2735_2.png) [@favba](https://discourse.julialang.org/u/favba)
#### Post date: [May 31, 2020, 12:01am UTC](https://discourse.julialang.org/t/macro-for-optional-threading-not-working/40491/2 "2020-05-31T00:01:14Z")

</div>

> <https://github.com/favba/FluidFlowSimulation.jl/blob/76883d21015c8885bf3b08e45b6efe0818214614/src/macros.jl#L9>

---

<div class="post-metadata">

### Author: ![francesco.alemanno](https://avatars.discourse-cdn.com/v4/letter/f/e8c25b/32.png) [@francesco.alemanno](https://discourse.julialang.org/u/francesco.alemanno)
#### Post date: [May 31, 2020, 12:18am UTC](https://discourse.julialang.org/t/macro-for-optional-threading-not-working/40491/3 "2020-05-31T00:18:20Z")

</div>

> [@favba](#):
>
> ```julia
> macro cthreads(condition::Symbol,loop::Expr) #does not work well because of #15276, but seems to work on Julia v0.7
> return esc(quote
> if $condition
> Threads.@threads $loop
> else
> $loop
> end
> end)
> end
> 
> ```

you sir are the best
