Skip to content

Conversation

@btovar
Copy link
Member

@btovar btovar commented Dec 2, 2025

This implementation has only one cursor. Let's see if it is enough as compared to work queue.

Merge Checklist

The following items must be completed before PRs can be merged.
Check these off to verify you have completed all steps.

  • make test Run local tests prior to pushing.
  • make format Format source code to comply with lint policies. Note that some lint errors can only be resolved manually (e.g., Python)
  • make lint Run lint on source code prior to pushing.
  • Manual Update: Update the manual to reflect user-visible changes.
  • Type Labels: Select a github label for the type: bugfix, enhancement, etc.
  • Product Labels: Select a github label for the product: TaskVine, Makeflow, etc.
  • PR RTM: Mark your PR as ready to merge.

@JinZhou5042
Copy link
Member

I’m wondering why it was necessary to mark a node as dead instead of deleting it directly. I know a regular list works this way, and I have no objection to it, just want to understand the rationale behind this.

Copy link
Member

@dthain dthain left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, this is looking good, and I like how you have simplified several taskvine issues while maintaining basically the same interface to the list. I have a couple of persnickety naming fixups, but no major concerns.

@btovar
Copy link
Member Author

btovar commented Dec 3, 2025

@dthain Sounds good!

@JinZhou5042 It is so that we can have more than one cursor pointing to the same node. We do not want to delete a node to which a cursor is pointing to as that will cause a segfault. Additionally, this allows us to 'delete' the item a cursor is pointing to during an iteration, which simplifies the places where we have to call 'next'.

@JinZhou5042
Copy link
Member

@btovar Got it! I think this is a nice and very maintanable implementation, especially the design in send_one_task that allows us to retrieve ready tasks while evaluating their eligibility. It also makes it simple to expire tasks with missing inputs in the future PR.

@btovar
Copy link
Member Author

btovar commented Dec 8, 2025

any concerns if I merge this pr? I have been running VineReduce+cortado on top it successfully.

@dthain dthain self-requested a review December 8, 2025 17:16
@dthain
Copy link
Member

dthain commented Dec 8, 2025

I think if you can run Cortado successfully with a clean valgrind, then I am comfortable merging.

@btovar btovar merged commit 0c128c9 into cooperative-computing-lab:master Dec 9, 2025
12 checks passed
@btovar btovar deleted the skip_list branch December 9, 2025 17:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants