mirror of
https://github.com/Relintai/voxelman.git
synced 2025-01-29 15:29:18 +01:00
Removed limit execution time, and made everything a simple stub when ThreadPool is not present.
This commit is contained in:
parent
f1bee24803
commit
b0a888d595
@ -24,10 +24,6 @@ SOFTWARE.
|
|||||||
|
|
||||||
#include "voxel_chunk_default.h"
|
#include "voxel_chunk_default.h"
|
||||||
|
|
||||||
#include "core/os/os.h"
|
|
||||||
|
|
||||||
#include "core/version.h"
|
|
||||||
|
|
||||||
void VoxelJob::set_chunk(const Ref<VoxelChunkDefault> &chunk) {
|
void VoxelJob::set_chunk(const Ref<VoxelChunkDefault> &chunk) {
|
||||||
_chunk = chunk;
|
_chunk = chunk;
|
||||||
|
|
||||||
@ -53,14 +49,15 @@ void VoxelJob::_execute() {
|
|||||||
//_chunk->set_build_step_in_progress(true);
|
//_chunk->set_build_step_in_progress(true);
|
||||||
|
|
||||||
while (!get_cancelled() && _in_tree && _chunk->has_next_phase() && _chunk->get_active_build_phase_type() == VoxelChunkDefault::BUILD_PHASE_TYPE_NORMAL) {
|
while (!get_cancelled() && _in_tree && _chunk->has_next_phase() && _chunk->get_active_build_phase_type() == VoxelChunkDefault::BUILD_PHASE_TYPE_NORMAL) {
|
||||||
if (should_return())
|
|
||||||
return;
|
|
||||||
|
|
||||||
//int phase = _chunk->get_current_build_phase();
|
int phase = _chunk->get_current_build_phase();
|
||||||
|
|
||||||
_chunk->build_phase();
|
_chunk->build_phase();
|
||||||
|
|
||||||
//print_error(String::num(get_current_execution_time()) + " phase: " + String::num(phase));
|
print_error(String::num(get_current_execution_time()) + " phase: " + String::num(phase));
|
||||||
|
|
||||||
|
if (should_return())
|
||||||
|
return;
|
||||||
|
|
||||||
if (!_chunk->get_build_phase_done())
|
if (!_chunk->get_build_phase_done())
|
||||||
break;
|
break;
|
||||||
@ -83,7 +80,6 @@ VoxelJob::VoxelJob() {
|
|||||||
_complete = true;
|
_complete = true;
|
||||||
_cancelled = false;
|
_cancelled = false;
|
||||||
|
|
||||||
_limit_execution_time = false;
|
|
||||||
_max_allocated_time = 0;
|
_max_allocated_time = 0;
|
||||||
_start_time = 0;
|
_start_time = 0;
|
||||||
|
|
||||||
@ -104,10 +100,6 @@ void VoxelJob::_bind_methods() {
|
|||||||
ClassDB::bind_method(D_METHOD("set_complete", "value"), &VoxelJob::set_complete);
|
ClassDB::bind_method(D_METHOD("set_complete", "value"), &VoxelJob::set_complete);
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "complete"), "set_complete", "get_complete");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "complete"), "set_complete", "get_complete");
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("get_limit_execution_time"), &VoxelJob::get_limit_execution_time);
|
|
||||||
ClassDB::bind_method(D_METHOD("set_limit_execution_time", "value"), &VoxelJob::set_limit_execution_time);
|
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "limit_execution_time"), "set_limit_execution_time", "get_limit_execution_time");
|
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("get_start_time"), &VoxelJob::get_start_time);
|
ClassDB::bind_method(D_METHOD("get_start_time"), &VoxelJob::get_start_time);
|
||||||
ClassDB::bind_method(D_METHOD("set_start_time", "value"), &VoxelJob::set_start_time);
|
ClassDB::bind_method(D_METHOD("set_start_time", "value"), &VoxelJob::set_start_time);
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "start_time"), "set_start_time", "get_start_time");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "start_time"), "set_start_time", "get_start_time");
|
||||||
@ -147,13 +139,6 @@ void VoxelJob::set_cancelled(const bool value) {
|
|||||||
_cancelled = value;
|
_cancelled = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool VoxelJob::get_limit_execution_time() const {
|
|
||||||
return _limit_execution_time;
|
|
||||||
}
|
|
||||||
void VoxelJob::set_limit_execution_time(const bool value) {
|
|
||||||
_limit_execution_time = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
float VoxelJob::get_max_allocated_time() const {
|
float VoxelJob::get_max_allocated_time() const {
|
||||||
return _max_allocated_time;
|
return _max_allocated_time;
|
||||||
}
|
}
|
||||||
@ -183,47 +168,22 @@ void VoxelJob::set_stage(const int value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
float VoxelJob::get_current_execution_time() {
|
float VoxelJob::get_current_execution_time() {
|
||||||
#if VERSION_MAJOR < 4
|
return 0;
|
||||||
return (OS::get_singleton()->get_system_time_msecs() - _start_time) / 1000.0;
|
|
||||||
#else
|
|
||||||
return (OS::get_singleton()->get_ticks_msec() - _start_time) / 1000.0;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool VoxelJob::should_do(const bool just_check) {
|
bool VoxelJob::should_do(const bool just_check) {
|
||||||
if (just_check) {
|
return true;
|
||||||
return _current_run_stage == _stage;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_current_run_stage < _stage) {
|
|
||||||
++_current_run_stage;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
++_current_run_stage;
|
|
||||||
++_stage;
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
bool VoxelJob::should_return() {
|
bool VoxelJob::should_return() {
|
||||||
if (_cancelled)
|
if (_cancelled)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (!_limit_execution_time)
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return get_current_execution_time() >= _limit_execution_time;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void VoxelJob::execute() {
|
void VoxelJob::execute() {
|
||||||
ERR_FAIL_COND(!has_method("_execute"));
|
ERR_FAIL_COND(!has_method("_execute"));
|
||||||
|
|
||||||
#if VERSION_MAJOR < 4
|
|
||||||
_start_time = OS::get_singleton()->get_system_time_msecs();
|
|
||||||
#else
|
|
||||||
_start_time = OS::get_singleton()->get_ticks_msec();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
call("_execute");
|
call("_execute");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,9 +67,6 @@ public:
|
|||||||
bool get_cancelled() const;
|
bool get_cancelled() const;
|
||||||
void set_cancelled(const bool value);
|
void set_cancelled(const bool value);
|
||||||
|
|
||||||
bool get_limit_execution_time() const;
|
|
||||||
void set_limit_execution_time(const bool value);
|
|
||||||
|
|
||||||
float get_max_allocated_time() const;
|
float get_max_allocated_time() const;
|
||||||
void set_max_allocated_time(const float value);
|
void set_max_allocated_time(const float value);
|
||||||
|
|
||||||
@ -93,7 +90,6 @@ private:
|
|||||||
bool _complete;
|
bool _complete;
|
||||||
bool _cancelled;
|
bool _cancelled;
|
||||||
|
|
||||||
bool _limit_execution_time;
|
|
||||||
float _max_allocated_time;
|
float _max_allocated_time;
|
||||||
uint64_t _start_time;
|
uint64_t _start_time;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user