mirror of
https://github.com/Relintai/voxelman.git
synced 2025-02-12 16:30: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;
|
||||
}
|
||||
void VoxelChunk::next_job() {
|
||||
_THREAD_SAFE_METHOD_
|
||||
|
||||
++_current_job;
|
||||
|
||||
if (_current_job >= _jobs.size()) {
|
||||
@ -270,6 +272,8 @@ void VoxelChunk::next_job() {
|
||||
}
|
||||
}
|
||||
Ref<VoxelJob> VoxelChunk::get_current_job() {
|
||||
_THREAD_SAFE_METHOD_
|
||||
|
||||
if (_current_job < 0 || _current_job >= _jobs.size()) {
|
||||
return Ref<VoxelJob>();
|
||||
}
|
||||
@ -1021,7 +1025,10 @@ void VoxelChunk::_exit_tree() {
|
||||
}
|
||||
|
||||
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];
|
||||
|
||||
@ -1043,7 +1050,10 @@ void VoxelChunk::_generation_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];
|
||||
|
||||
|
@ -66,6 +66,8 @@ class VoxelWorld;
|
||||
class VoxelChunk : public Resource {
|
||||
GDCLASS(VoxelChunk, Resource);
|
||||
|
||||
_THREAD_SAFE_CLASS_
|
||||
|
||||
public:
|
||||
enum {
|
||||
VOXEL_CHUNK_STATE_OK = 0,
|
||||
|
Loading…
Reference in New Issue
Block a user