# Can Julia creat custom callback function?

**URL:** <https://discourse.julialang.org/t/can-julia-creat-custom-callback-function/87501>\
**Category:** New to Julia\
**Created:** [September 20, 2022, 5:01am UTC](https://discourse.julialang.org/t/can-julia-creat-custom-callback-function/87501 "2022-09-20T05:01:18Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Brian1](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/brian1/32/49250_2.png) [@Brian1](https://discourse.julialang.org/u/Brian1)\
**Post date:** [September 20, 2022, 5:01am UTC](https://discourse.julialang.org/t/can-julia-creat-custom-callback-function/87501/1 "2022-09-20T05:01:18Z")

</div>

Here is the discripitive code:

```julia
struct CallBack{T,N}
    condition::T
    call_back::N
end
struct Condition{T}
    condition::T
end
check_condition(cond::Condition{T}) where {T<:V{Int}} = cond.condition[end] == 1
call_back_func(cond::Condition{T}) where {T<:V{Int}} = println("condition is triggered")

```

create instance:

```julia
cond = Condition([1,2,3])
callback = CallBack(cond,call_back_func)

```

Then, whenever I do `push!(cond.condition,1)`, there will be printed `"condition is triggered"`.

Of course I can running a thread:

```julia
Threads.@spawn begin
    while true:
        if check_condition(callback.condition)
            callback.call_back(callback.condition)
        end
    end
end

```

But this will waste the computer resource. Is there any other way?

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [September 20, 2022, 6:20am UTC](https://discourse.julialang.org/t/can-julia-creat-custom-callback-function/87501/2 "2022-09-20T06:20:14Z")

</div>

The better way would be to override `push!` for a type and check the condition there.
