Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: The Clipboard operations in the Wayland #119

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

cccccccb
Copy link

  1. 整理所有信号的连接与创建,避免重复连接和内存泄漏的情况。
  2. 通过创建一个统一的线程管理机制[服务流机制],管理所有获取 的拷贝和粘贴操作指令。
    其中,用两种不同的服务流来分别管理拷贝和粘贴,拷贝流在
    每一次用户操作 Ctrl + c 时都会重新创建,流程执行完毕后自动
    退出回收;粘贴流由于执行指令类似,因此将其放在同一个流中进行
    后台监听,当用户使用 Ctrl + v 时,不断的向流中放置消息,使
    流开始正常工作。
    服务流使用责任链模式实现,每一个服务存在不同的指令,每个
    指令在子线程中执行不同的任务,并将结果发送给下一个服务中的指
    令,直到服务结束。多个服务串行,形成最终的服务流。
  3. 由于窗管对信号中指针的接受,没有进行线程安全的操作,因此 最终实现时增加了较多的线程同步机制,以防止出现野指针

Log:
Influence: Wayland clipboard

@cccccccb
Copy link
Author

@github-actions github-actions bot requested a review from yixinshark September 23, 2022 08:27
1. 整理所有信号的连接与创建,避免重复连接和内存泄漏的情况。
2. 通过创建一个统一的线程管理机制[服务流机制],管理所有获取
的拷贝和粘贴操作指令。
    其中,用两种不同的服务流来分别管理拷贝和粘贴,拷贝流在
每一次用户操作 Ctrl + c 时都会重新创建,流程执行完毕后自动
退出回收;粘贴流由于执行指令类似,因此将其放在同一个流中进行
后台监听,当用户使用 Ctrl + v 时,不断的向流中放置消息,使
流开始正常工作。
    服务流使用责任链模式实现,每一个服务存在不同的指令,每个
指令在子线程中执行不同的任务,并将结果发送给下一个服务中的指
令,直到服务结束。多个服务串行,形成最终的服务流。
3. 由于窗管对信号中指针的接受,没有进行线程安全的操作,因此
最终实现时增加了较多的线程同步机制,以防止出现野指针

Log:
Influence: Wayland clipboard
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant