' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
' Unless required by  applicable law or agreed to in writing, software distributed under the License is distributed
' on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and limitations under the License.

@startuml

start

if (dead space) then (too much)
  :coalesce;
endif

repeat
if (writeable heap?) then (false)
  :create writeable heap;
endif
if (can allocate) then (true)
  stop
endif
if (demote_heap) then (no open slots)
  :coalesce;
endif
repeat while(loop)
detach

@enduml
