# Headless engine stops calling script update function after some time

**URL:** <https://forum.defold.com/t/headless-engine-stops-calling-script-update-function-after-some-time/78086>\
**Category:** Bugs\
**Created:** [September 14, 2024, 4:24pm UTC](https://forum.defold.com/t/headless-engine-stops-calling-script-update-function-after-some-time/78086 "2024-09-14T16:24:46Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![romanchekashov](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/romanchekashov/32/22298_2.png) [@romanchekashov](https://forum.defold.com/u/romanchekashov)\
**Post date:** [September 14, 2024, 4:24pm UTC](https://forum.defold.com/t/headless-engine-stops-calling-script-update-function-after-some-time/78086/1 "2024-09-14T16:24:46Z")

</div>

I’ve created headless game build with command below:

```lua
java -jar bob.jar clean resolve build --platform x86_64-macos --variant headless --settings game_server.settings

```

And run it with command:

```lua
./dmengine_headless

```

In game I have a script with method update below:

```lua
local sleepTime = 0.03 -- 30 ms

function update(self, dt)
  local current_time = os.date("%Y-%m-%d %H:%M:%S")
  log(current_time, "update", dt)
  if sleepTime > 0 then
    -- this limits CPU usage on VPS
    --socket.select(nil, nil, tonumber(sleepTime))
    os.execute("sleep " .. tonumber(sleepTime))
  end
  -- checkDataRecievedFromClientSocketAndSendResultBack(dt)
end

```

So, this update function running for some time and then just stops!  
I’ve commented out heavy socket read/write method but it does not help;(

Can someone explain why?

I am using Defold version 1.9.1 because editor with version 1.9.2 just hanging on splash screen on Mac M1 Max;(

PS: Maybe instead of C# it’s better to add Java support?😉

---

<div class="post-metadata">

**Author:** ![Mathias\_Westerdahl](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/mathias_westerdahl/32/228_2.png) [@Mathias\_Westerdahl](https://forum.defold.com/u/Mathias_Westerdahl)\
**Post date:** [September 14, 2024, 4:42pm UTC](https://forum.defold.com/t/headless-engine-stops-calling-script-update-function-after-some-time/78086/2 "2024-09-14T16:42:51Z")

</div>

> [@romanchekashov](#):
>
> `os.execute("sleep " .. tonumber(sleepTime))`

I don’t have a good idea, but perhaps the OS doesn’t like the many calls to the external `sleep` tool?

---

<div class="post-metadata">

**Author:** ![britzl](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/britzl/32/23_2.png) [@britzl](https://forum.defold.com/u/britzl)\
**Post date:** [September 15, 2024, 5:40am UTC](https://forum.defold.com/t/headless-engine-stops-calling-script-update-function-after-some-time/78086/3 "2024-09-15T05:40:17Z")

</div>

I seem to remember someone else sharing a native extension which limited the CPU usage of a headless Defold build. I can’t find it now though. Was it maybe @d954mas ?

---

<div class="post-metadata">

**Author:** ![selimanac](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/selimanac/32/6397_2.png) [@selimanac](https://forum.defold.com/u/selimanac)\
**Post date:** [September 15, 2024, 7:21am UTC](https://forum.defold.com/t/headless-engine-stops-calling-script-update-function-after-some-time/78086/4 "2024-09-15T07:21:58Z")

</div>

> [@britzl](#):
>
> I can’t find it now though. Was it maybe @d954mas ?

[https://github.com/defold/defold/issues/8029#issuecomment-2066647682](https://github.com/defold/defold/issues/8029#issuecomment-2066647682)

---

<div class="post-metadata">

**Author:** ![Mathias\_Westerdahl](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/mathias_westerdahl/32/228_2.png) [@Mathias\_Westerdahl](https://forum.defold.com/u/Mathias_Westerdahl)\
**Post date:** [September 15, 2024, 7:29am UTC](https://forum.defold.com/t/headless-engine-stops-calling-script-update-function-after-some-time/78086/5 "2024-09-15T07:29:03Z")

</div>

We also readded support for `display.update_frequency` in Defold 1.9.3 BETA, which is coming out on monday.

---

<div class="post-metadata">

**Author:** ![romanchekashov](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/romanchekashov/32/22298_2.png) [@romanchekashov](https://forum.defold.com/u/romanchekashov)\
**Post date:** [September 15, 2024, 7:35am UTC](https://forum.defold.com/t/headless-engine-stops-calling-script-update-function-after-some-time/78086/6 "2024-09-15T07:35:36Z")

</div>

I’ve removed sleep and added rate limiter, but anyway update stops after some time;(

```lua
M.RATE_LIMIT = 1

function M.createRateLimiter(rateLimit)
	local _rateLimit = rateLimit or M.RATE_LIMIT
	local send_cooldown = _rateLimit

	return function (dt)
		send_cooldown = send_cooldown - dt
		if send_cooldown > 0 then
			return true
		else
			send_cooldown = _rateLimit
		end
		return false
	end
end

```

---

<div class="post-metadata">

**Author:** ![Mathias\_Westerdahl](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/mathias_westerdahl/32/228_2.png) [@Mathias\_Westerdahl](https://forum.defold.com/u/Mathias_Westerdahl)\
**Post date:** [September 15, 2024, 7:51am UTC](https://forum.defold.com/t/headless-engine-stops-calling-script-update-function-after-some-time/78086/7 "2024-09-15T07:51:17Z")

</div>

Perhaps you have a sys log somewhere that let’s you know what the system does with your process?  
E.g. check `Console` app.

---

<div class="post-metadata">

**Author:** ![romanchekashov](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/romanchekashov/32/22298_2.png) [@romanchekashov](https://forum.defold.com/u/romanchekashov)\
**Post date:** [September 15, 2024, 9:53am UTC](https://forum.defold.com/t/headless-engine-stops-calling-script-update-function-after-some-time/78086/8 "2024-09-15T09:53:56Z")

</div>

I suppose we can blame MacBook M1 Max.

I’ve just created a Docker container and build & run with docker-compose for `platform: linux/amd64`.

Inside docker with ubuntu image sleep works as expected!

So, thank you everyone!
