mirror of
https://github.com/Relintai/voxelman.git
synced 2025-02-14 16:40:06 +01:00
Added _THREAD_SAFE_CLASS_ declaration to VoxelChunk and also made job-related methods thread safe.
This commit is contained in:
parent
9824738095
commit
c4eb758d20
@ -242,6 +242,8 @@ int VoxelChunk::get_current_job_index() {
|
|||||||
return _current_job;
|
return _current_job;
|
||||||
}
|
}
|
||||||
void VoxelChunk::next_job() {
|
void VoxelChunk::next_job() {
|
||||||
|
_THREAD_SAFE_METHOD_
|
||||||
|
|
||||||
++_current_job;
|
++_current_job;
|
||||||
|
|
||||||
if (_current_job >= _jobs.size()) {
|
if (_current_job >= _jobs.size()) {
|
||||||
@ -270,6 +272,8 @@ void VoxelChunk::next_job() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Ref<VoxelJob> VoxelChunk::get_current_job() {
|
Ref<VoxelJob> VoxelChunk::get_current_job() {
|
||||||
|
_THREAD_SAFE_METHOD_
|
||||||
|
|
||||||
if (_current_job < 0 || _current_job >= _jobs.size()) {
|
if (_current_job < 0 || _current_job >= _jobs.size()) {
|
||||||
return Ref<VoxelJob>();
|
return Ref<VoxelJob>();
|
||||||
}
|
}
|
||||||
@ -1021,7 +1025,10 @@ void VoxelChunk::_exit_tree() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void VoxelChunk::_generation_process(const float delta) {
|
void VoxelChunk::_generation_process(const float delta) {
|
||||||
ERR_FAIL_INDEX(_current_job, _jobs.size());
|
_THREAD_SAFE_METHOD_
|
||||||
|
|
||||||
|
if (_current_job < 0 || _current_job >= _jobs.size())
|
||||||
|
return;
|
||||||
|
|
||||||
Ref<VoxelJob> job = _jobs[_current_job];
|
Ref<VoxelJob> job = _jobs[_current_job];
|
||||||
|
|
||||||
@ -1043,7 +1050,10 @@ void VoxelChunk::_generation_process(const float delta) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
void VoxelChunk::_generation_physics_process(const float delta) {
|
void VoxelChunk::_generation_physics_process(const float delta) {
|
||||||
ERR_FAIL_INDEX(_current_job, _jobs.size());
|
_THREAD_SAFE_METHOD_
|
||||||
|
|
||||||
|
if (_current_job < 0 || _current_job >= _jobs.size())
|
||||||
|
return;
|
||||||
|
|
||||||
Ref<VoxelJob> job = _jobs[_current_job];
|
Ref<VoxelJob> job = _jobs[_current_job];
|
||||||
|
|
||||||
|
@ -66,6 +66,8 @@ class VoxelWorld;
|
|||||||
class VoxelChunk : public Resource {
|
class VoxelChunk : public Resource {
|
||||||
GDCLASS(VoxelChunk, Resource);
|
GDCLASS(VoxelChunk, Resource);
|
||||||
|
|
||||||
|
_THREAD_SAFE_CLASS_
|
||||||
|
|
||||||
public:
|
public:
|
||||||
enum {
|
enum {
|
||||||
VOXEL_CHUNK_STATE_OK = 0,
|
VOXEL_CHUNK_STATE_OK = 0,
|
||||||
|
Loading…
Reference in New Issue
Block a user